运行时错误' 424' "需要的对象"当试图复制表

时间:2014-12-18 09:52:49

标签: vba excel-vba excel

我在下面指出的行上收到此错误。我做错了什么?

  

运行时错误'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

2 个答案:

答案 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)

你不需要“选择”!!!你,显然记录了一个宏,并且有点复制它。 宏只是为了观察和改进:)