首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >运行时错误“1004”:Range Class failed 2003的选择方法

运行时错误“1004”:Range Class failed 2003的选择方法
EN

Stack Overflow用户
提问于 2012-03-28 22:06:03
回答 3查看 59K关注 0票数 2

我正试图把一栏从一张纸复制到另一张纸上。我正在使用的代码是一个录制的宏,在我将它连接到一个按钮之前,它工作正常。当我这样做的时候,它会给出一个

运行时错误“1004”:Range类的选择方法失败

这是代码,我看不出有什么问题。当我点击debug时,它突出显示了第二行。

代码语言:javascript
代码运行次数:0
运行
复制
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

我不知道问题出在哪里。请帮帮忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 22:19:25

您应该始终避免使用.Select --它们是导致错误的一个主要原因。你可能想看如何避免在Excel中使用Select

代码语言:javascript
代码运行次数:0
运行
复制
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
票数 8
EN

Stack Overflow用户

发布于 2012-03-29 11:01:01

我认为问题在于,您已经在另一个工作表的代码模块中编写了代码。如果我在Sheet1,然后写。

代码语言:javascript
代码运行次数:0
运行
复制
Sheets("Sheet2").Select
Columns("A:A").Select

...then Excel假定您引用的是Sheet1上的列,因为它将当前工作表视为默认值。因此,您已经告诉Excel“选择工作表2”,然后“选择工作表1上的列”...which--它不能这样做--它会给出错误消息。最好的解决方案是不要使用‘Select’.但是您仍然可以在Siddharth的代码中看到他必须显式地引用表地址

如果将原始代码放置在ThisWorkbook模块中,那么原始代码就可以工作了。输入代码的位置将在此Excel帮助视频的末尾解释。

票数 3
EN

Stack Overflow用户

发布于 2013-04-26 13:02:04

当您将vba代码放入“视图表代码”时。使用Application.Run肯定有帮助..。要运行宏..。

我有问题,我直接输入宏到工作表代码。对于另一个工作表中的选择,它声称运行时错误1004.因此,我分别创建了宏,然后将Application.Run宏放在工作表代码中。

完美地解决问题;)

这个Application.Run也有助于当你有太大的宏,而excel声称它不能这么大的时候。您可以轻松地分成几个部分,然后一个一个地运行应用程序。;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9916342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档