-1

フォルダからファイルを取得し、それらのデータをターゲットスプレッドシートに貼り付けるコードを取得しようとしています。

すべて同じ形式のレポートを含むフォルダーがあります。レポートは毎週生成され、毎週新しいフォルダーに保存されるため、常に同じフォルダーからファイルを選択するわけではありません。「フォルダの参照」ダイアログボックスを提供するマクロが欲しいのですが、フォルダを選択すると、そのフォルダ内の各Excelファイルが順番に開き、データ(範囲A:W)がコピーされ、ターゲットのスプレッドシートに貼り付けられます。 、スプレッドシートを閉じてから、フォルダ内の次のファイルに移動します。

レポート内では、見出しの下に常に同じ行数があるとは限りません。1行だけ、または2行以上になる可能性があるため、各行にデータが存在するかどうかをチェックするコードを使用する必要があります。その行をコピーします。1つ以上の場合はすべてをコピーします。

4

1 に答える 1

1

次のようなものを使用して、選択したフォルダー内のフォルダーを循環できます。

Dim sPath As String
Dim sFil As String
Dim FolderPath As String
   Dim diaFolder As FileDialog

   ' Open the file dialog
   Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
    diaFolder.AllowMultiSelect = False
    diaFolder.Show
    FolderPath = diaFolder.SelectedItems(1)

     ' Cycle through spreadsheets in selected folder

sPath = FolderPath & "\" 'location of files

sFil = Dir(sPath & "*.csv") 'change or add formats
Do While sFil <> "" 'will start LOOP until all files in folder sPath have been looped       through


Set oWbk = Workbooks.Open(sPath & "\" & sFil) 'opens the file
' do something

oWbk.Close True
sFil = Dir

Loop

次に、コードを配置して、列をコピーすることができます'do something

于 2013-02-19T16:56:25.807 に答える