1
下面的代碼在我「進入」代碼並將來自每個文件的數據粘貼到「Cisco數據庫」文件中時效果很好。但是,當我剛剛運行它時,它始終保留最後一個文件。我添加了一個特定的行來保存數據庫文件,每次都無濟於事。有什麼建議麼?VBA代碼在逐步操作中運行,運行時跳過一個文件
Sub AppendDataFinal()
Dim myWorkbook As String
myDB = "CiscoDatabase.xlsx"
myWorkbook = "Cisco.xlsm"
Application.Run "'Cisco.xlsm'!importfile" //grabs all .csv files from a folder
For Each wb In Workbooks
If (wb.Name <> myWorkbook) Then wb.Activate
Columns("A:O").Select
Selection.Delete Shift:=xlUp
Columns("O:AS").Select
Selection.Delete Shift:=xlUp
Selection.CurrentRegion.Select
Selection.Copy
Workbooks.Open ("file path")
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste , False
Range("A1").Select
If (ActiveWorkbook.Name = myDB) Then ActiveWorkbook.Save
ActiveWorkbook.Close
ActiveWorkbook.Close savechanges:=False
Next wb
Workbooks.Open ("file path and name")
Application.Run "Cisco.xlsm!DateFormat" //trims time off date row, pretties up data
End Sub
這不是一個好主意,當你循環儘管它修改的集合,如'WorkBooks'不同的方法。你也許應該創建一個數組或者你想要操作的文件的名字集合,然後循環。 –
這段代碼在運行什麼文件?如果它是Cisco.xlsm,那麼您不需要使用'Application.Run'來調用同一文件中的另一個宏。 –
非常感謝,我真的很感謝你在看這個hotmess。無論我閱讀了多少個教程,我似乎都無法找到有關這些工作的明確解釋。 – caro