次のマクロを作成して、いくつかのブックからWorkTrackerシートのエントリをコピーすることができました。 1.空であるか、または「報告済み」が各セルに更新されている場合は、個々のファイルから列Xを確認してください 2.列Xが空白で、列a〜wコピーした後、列Xを "報告済み"で更新する必要があります。 3.列Xに既に "レポート済み"が設定されている場合は、スキップする必要があります次のエントリを確認する必要があります列値に基づいて行をコピーし、コピー後に列を更新します。
効率的な方法はありますか?基本的に、マクロは個々のエントリを統合する必要があります。また、以前に報告されたエントリを識別できるようにする必要があるため、マクロを別の時間(毎週実行する)に再度コピーしません。
どうもありがとうございます! Forループ
Sub LoopThroughDirectory()
Dim MyFile As String
Dim erow
Dim lRow As Long
Dim lCol As Long
MyFile = Dir("C:\Users\bmsand\Documents\Agatha\FY18\Test 2\")
Do While Len(MyFile) > 0
If MyFile = "zmaster.xlsm" Then
Exit Sub
End If
Workbooks.Open (MyFile)
Sheets("WorkTracker").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(4, 23), Cells(lRow, lCol)).Copy
Application.DisplayAlerts = False
ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Consolidate").Range(Cells(erow, 1), Cells(erow, 23))
MyFile = Dir
Loop
End Sub
このテキストの壁は理解できない横にあるため、説明を少し読みやすくしてください。あなたの作業をより小さなステップに分けるのに役立つかもしれません。一度に1つのステップを取る。値が "報告"されているかどうかを確認するには、次のようにします:Cell(行、列).text = "報告"してから何もしない、何かをする終了する場合 – Luuklag
ありがとう@Luuklag ...あなたが条件をどこに行かせるべきかを私に示すためにコードを編集してもよろしいですか?ありがとう! – agatha