我使用Excel中的「記錄宏」按鈕創建基本宏。然後我進行相應的編輯,以使宏執行我正在嘗試執行的操作。宏錯誤處理
在這種情況下,我手動打開master.xlsx文件。然後我運行一個名爲week12的master.xlsx宏。
這個宏打開一個名爲Grant.xlsx文件,複製單元H16中的內容,然後粘貼內容到master.xlsx細胞N3。
我遇到的,如果文件不存在,我得到一個消息,說文件找不到,然後我得到一個運行時錯誤「1004」的問題。
宏的目的是打開40分不同的塗抹片和複製單元格中的內容並將其粘貼到master.xlsx。 40個文件中的任何一個或多個可能會丟失。下面僅宏示例顯示了的40
Sub Week12()
'
' Week12 Macro
'
' Grant
'
If Err.Number > 0 Then
Err.Clear
End If
On Error GoTo 3
Sheets("SCORES").Select
Range("A1").Select
ChDir _
"K:\\\Grant"
Workbooks.Open Filename:= _
"K:\\\\Week 12.xlsx"
Range("H16").Select
Selection.Copy
Windows("Master.xlsb").Activate
Range("N3").Select
ActiveSheet.Paste
Range("A1").Select
Windows("Week 12.xlsx").Activate
ActiveWindow.Close
GoTo 4
3:
'if the file is missing put a O in N3
Range("N3").Select
ActiveCell.FormulaR1C1 = "O"
Range("A1").Select
If Err.Number > 0 Then
Err.Clear
End If
4:
' Adele
On Error GoTo 5
Sheets("SCORES").Select
Range("A1").Select
ChDir _
"K:\\\\Adele"
Workbooks.Open Filename:= _
"K:\\\\Adele\Week 12.xlsx"
Range("H16").Select
Selection.Copy
Windows("Master.xlsb").Activate
Range("N4").Select
ActiveSheet.Paste
Range("A1").Select
Windows("Week 12.xlsx").Activate
ActiveWindow.Close
GoTo 6
5:
'if the file is missing put a O in N4
Range("N4").Select
ActiveCell.FormulaR1C1 = "O"
Range("A1").Select
If Err.Number > 0 Then
Err.Clear
End If
6:
' Stuart Manvell
'and so on and so on for all 40 names
end sub
這是一個非常長篇大論對其進行編碼的方式。是否存在文件存儲位置,複製信息和粘貼位置的模式?即它們全部在同一個文件夾中,它是否總是被複制的單元格H16?例如,如果主文件的第1行具有要導入的文件的名稱,即A1 =「Grant」,B1 =「Adele」,那麼很容易讓代碼查看行中的每個名稱1,打開該工作簿並粘貼下面的結果,或打開某個文件夾中的每個XL文件並將其內容複製出來。 –