エクセルのマクロを書いています。マクロ ループを正確に 100 回実行したい。最初の反復では、file1.txt という 1 つのファイルを読み取ります。そこからデータをコピーし、データを 1 つのメイン Excel ファイル セル「E4」に貼り付けます。その後、file2.txt という 2 番目のファイルを読み取り、そこからデータをコピーしてから、メインの Excel ファイル セル「H4」にデータを貼り付けます。そのように100回の反復を行う必要があります。
しかし、現在は file1.txt からデータをコピーし、データを「E4」、「H4」、「K4」、「N4」などにそれぞれ (100 回) 貼り付けます。100回の繰り返しの後、file2.txtからデータのコピーを開始し、「E4」、「H4」、「K4」、「N4」に再度貼り付けます... 100回ループした後、file3.txt。
したがって、合計 100x100 のループが作成され、すべての結果が最後のファイルで上書きされます。100 ループだけが必要で、各ファイルの結果は別の列に表示されます。どうやってやるの?下手な英語でごめんなさい。
Sub copy_files_macro()
Dim y As Integer
Dim fname As String
Dim dirctry As String
Dim profnum As Integer
Sheets("Start_Page").Select
dirctry = Range("A1").Value
fname = Range("A2").Value
ChDir (dirctry)
For profnum = 1 To 100
For y = 1 To 300 Step 3
Workbooks.OpenText filename:= _
fname & "file" & profnum & ".txt", Origin:=857, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(9, _
1), Array(29, 1), Array(49, 1), Array(69, 1), Array(89, 1), Array(109, 1), Array(129, 1), _
Array(149, 1), Array(168, 1), Array(188, 1), Array(209, 1), Array(229, 1), Array(249, 1), _
Array(269, 1), Array(288, 1))
TrailingMinusNumbers = True
Range("B3:C123").Select
Selection.Copy
Windows("main_excel_file.xlsx").Activate
Sheets("file_data").Select
Range("D4").Offset(0, y).Select
ActiveSheet.Paste
Windows(fname & "file" & profnum & ".txt").Activate
Application.CutCopyMode = False
ActiveWindow.Close
Next y
Next profnum
ActiveWorkbook.Save
End Sub