我遇到麻烦找出我的代码问题。我正在运行一个文件夹,根据文件名创建工作表,复制单个单元格(A1)并将其传递到新工作表中。不过,我一直得到以下错误:工作簿之间的复制/粘贴(下标超出范围)
Subscript out of range (Run-time error '9')
我有以下代码:
Sub InsertDepartments()
Dim MyObj As Object, MySource As Object, file As Variant
file = Dir(ThisWorkbook.Path & "\Departments\")
While (file <> "")
Set WS = Sheets.Add(After:=Sheets("Start"))
WS.Name = Left(file, InStr(file, ".") - 1)
Workbooks(ThisWorkbook.Path & "\Departments\" & file).Sheets("XXX").Range("A1").Copy
Sheets(WS.Name).Range("A1").PasteSpecial Paste:=xlPasteValues
file = Dir
Wend
End Sub
有人能看到什么是错的代码?提前致谢。
不知道是什么行中出现的错误,但试试这个:'文件= DIR(ThisWorkbook.Path& “\部门\ * XLSX。”)''的'字符会返回一个名为'所有文件例如,该文件夹中的.xlsx'。实际上,我认为答案是您需要先打开工作簿,然后才能将任何范围值复制到该工作簿。因此,在复制方法之前插入一个'Workbooks.Open'方法。 (留下第一部分,以防它有帮助)。 –
如果您尝试使用的项目不在集合中,则会在您的任何“Sheets()”或“Workbooks()”访问中弹出此错误。检查'ThisWorkbook.Path&“\ Departments \”&file'的值以确保它是已打开工作簿的名称。检查工作簿是否有名为“XXX”的工作表,并检查您的ActiveWorkbook是否有名为“WS.Name”的工作表 – Mikegrann