我已經stucked今天這個上...錯誤5使用迪爾 - 宏複製從另一個工作簿片,採用SHEETNAME
我有幾個的.xlsx文件的文件夾名爲「文件修改」 例如,它們中的每一個都具有名爲specificaly的第一個表單,如「test1」。
我有其他的.xlsx文件的文件夾名爲「老文件中插入」 每個這些被稱爲特別是這樣的:「老test1.xlsx」,老TEST2,等...
我想我的宏將通過第一個文件夾和文件,並將相應的舊.xlsx的第一張表複製到另一個文件夾中。
該代碼遠沒有工作,但主要問題是,我得到一個錯誤5在Dir線,我認爲這是因爲我使用DIR二次(ProcessFiles宏在另一種情況下工作正常,我不需要在DoWork子目錄中使用Dir)。
歡迎任何幫助,因爲你可以猜到我是初學者。
這裏是我的代碼
Sub ProcessFiles()
Dim FileName, Pathname As String
Dim wb As Workbook
Pathname = ActiveWorkbook.Path & "\Files to modify\"
FileName = Dir(Pathname & "*.xlsx", vbNormal)
Do While FileName <> ""
Set wb = Workbooks.Open(FileName:=Pathname & FileName, Local:=True)
DoWork wb
wb.Close True
Set wb = Nothing
FileName = Dir 'Error 5 is here
Loop
End Sub
Sub DoWork(wb As Workbook)
Dim FileName As String
FileName = Dir(ActiveWorkbook.Path & "\Old file to insert\" & "old " & ActiveSheet.Name & ".xlsx")
If FileName = "" Then
MsgBox "File does not exist"
Else
Set wb2 = Application.Workbooks.Open(FileName)
wb2.Sheets(1).Copy After:=wb.Sheets(1)
End If
End Sub
Dir是一個函數,你不能像'='那樣設置它,檢查你的將它轉換成'FileName = Dir(Pathname&「* .xlsx」,vbNormal)'' - 它具有工作所需的參數。 – Sgdva
感謝您的幫助:) –