私はこれを検索して検索しましたが、近づいてきましたが、完璧ではありません。ほら…
私が必要としているのは、他の Excel ワークブックを連続して処理し、データをコピーするためのコードです。ファイルには 1、2、3、4 などの名前が付けられ、最大で約 60 個までです。私のすべてのファイルを開くコードがいくつかありますが、これはうまく機能します。次に、すべてのワークブックに移動してセットアップデータをコピーし、それをメインのワークブックに戻す必要があります。これも同様に実行できました。ここに私の問題があります...
コードを 1 回記述して、残りのファイルで機能させる方法が必要であることはわかっています。すなわち。最初のファイルの名前が 1.csv の場合、コードは 1.csv でそれを実行し、次に 1.csv + 1 で 2.csv を意味し、ループアウトすることができますか? それができるはずのようです。1.csv から 60.csv までコピーするために同じコードを手動で作成する必要はありません。
それをループする方法がある場合は、最後の if 部分を終了する方法を教えてください。IE では、1 週間で 37 個のファイルがあり、次は 40 個という具合です。ファイル 1.csv で開始し、37.csv または 60.csv のいずれかの最後のアクティブなファイルに到達するまで動作し、38.csv ファイルがない場合は終了するようにします。
これが私が持っている基本的な記録されたコードです。
Public Sub testr()
Dim filenum As Integer
Dim lastrow As Long
filenum = 1
On Error GoTo my_handler
Do
Windows(filenum & ".CSV").Activate
Range("A25").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Windows("test.xlsm").Activate
Range("A1").Select
lastrow = Worksheets("Data").Cells(1, 1).End(xlDown).Row
ActiveSheet.Paste
filenum = filenum + 1
Loop
my_handler:
MsgBox "All done."
Exit Sub
End Sub
誰かが私に与えることができるどんな助けも素晴らしいでしょう! よろしくお願いします〜