我在下面指出的行上收到此错误。我做错了什么?
运行时错误'424' 需要的对象
Sub GetSheets()
Path = "C:\Users\vinod\Desktop\dt kte\"
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
Sheets("Payout Summary").Select
Sheet.Copy After:=ThisWorkbook.Sheets(1) ' <~~~~ Error occurs here
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
答案 0 :(得分:3)
发生错误是因为Sheet
Nothing 为空。您还没有声明任何变量Sheet
;当您第一次使用它时,它默认为Variant,其值为Empty。
将故障线路更改为:
ActiveSheet.Copy After:=ThisWorkbook.Sheets(1)
尽管如此,你应该阅读:How to avoid using Select in Excel VBA macros
并在模块顶部使用Option Explicit
强制自己明确声明所有变量。如果你这样做了,你就能更快地找到你的错误。
答案 1 :(得分:0)
对Jean-FrançoisCorbett的回答略有改进:
替换
行Sheets("Payout Summary").Select
Sheet.Copy After:=ThisWorkbook.Sheets(1)
与
Sheets("Payout Summary").Copy After:=ThisWorkbook.Sheets(1)
你不需要“选择”!!!你,显然记录了一个宏,并且有点复制它。 宏只是为了观察和改进:)