运行时错误'1004':选择范围类失败的VBA 2003方法

时间:2012-03-28 22:06:04

标签: excel vba excel-vba excel-2003

我正在尝试将列从一个工作表复制到另一个工作表。我正在使用的代码是一个录制的宏,它可以正常工作,直到我将它连接到一个按钮。当我这样做时,它会给出“运行时错误'1004':选择范围类的方法失败”

这是代码,我可以看到它没有错。当我点击调试时,会突出显示第二行。

Sheets("Count").Select
Columns("C:C").Select
Selection.Copy
Sheets("Add Invintory").Select
Range("b1").Select
ActiveSheet.Paste
Sheets("Count").Select
Sheets("Count").Columns("A:A").Select
Columns("A:A").Select
Selection.Copy
Sheets("Add Invintory").Select
Range("A1").Select
ActiveSheet.Paste

我不知道问题是什么。请帮忙

3 个答案:

答案 0 :(得分:8)

您应始终避免使用.Select它们是导致错误的主要原因:)

你在尝试吗?

Sub Sample()
    Sheets("Count").Columns("C:C").Copy _
    Sheets("Add Invintory").Columns("B:B")

    Sheets("Count").Columns("A:A").Copy _
    Sheets("Add Invintory").Columns("A:A")
End Sub

答案 1 :(得分:3)

我认为问题在于您已将代码写入另一个工作表的代码模块中。如果我在Sheet1中,并写下例如。

Sheets("Sheet2").Select
Columns("A:A").Select

...然后Excel假定您指的是Sheet1上的列,因为它将当前工作表视为默认值。因此,您已经告诉Excel“选择工作表2”然后“选择工作表1上的一列”...它不能这样做它会给您一个错误信息。最好的解决方案是不要使用“选择”...但你仍然会在Siddharth的代码中看到他必须明确地引用表格地址

如果放入ThisWorkbook模块,您的原始代码将起作用。在Excel help video

的末尾解释了输入代码的位置

答案 2 :(得分:0)

当你将vba代码放入“视图表代码”时..使用Application.Run ...运行宏确实有帮助。

我有问题我直接输入宏到工作表代码..在另一张工作表中选择它声称运行时错误1004 ..所以我分别创建宏,然后我把Application.Run我的宏从工作表代码。

完美地运作;)

这个Application.Run也有助于当你有一个太大的宏,而且声称它不能那么大。您可以轻松划分为多个部分,然后逐个运行应用程序..;)