【Excel技巧】- VBA代码提示运行时错误 '1004': 应用程序定义或对象定义错误
其实今天应该开始着手写
PowerPoint
的相关技巧,但由于技巧较多,还不知道用什么方法给大家展现,所以一直在构思。在构思的过程中看到大大秦川的牛闪闪的日子2群有人在咨询
VBA代码
的问题,所以就抽空帮其解决了一下。
问题如下
:
我从群文件里下载这位武汉的小伙伴上传的【
源文件和代码.zip
】文件,打开该压缩包,有两个文档一个是xlsx结尾的,另一个是保存为文本的宏代码。
把文件解压到桌面后,我便双击鼠标打开1234.xlsx文件,然后就顺手把txt里的宏代码拷贝到仅有的一个工作表文件里。
具体操作
如下动态图:
看着上面的动态图,一切都是那么的自然,殊不知我已经掉到坑里去了。因为按照正常的编写VBA代码来说,不会出现这个问题。我自从大二自学VBA以来到现在,写了那么多VBA代码,也没有遇到过一次这样的问题。所以这个问题的出现的确让我感到困惑,所以我从头开始梳理代码,按F8一条一条的调试,调试方法如下:
当执行到语句
Range("B1").Select
的时候,错误窗就弹出来了。由于写了那么多VBA代码,所以从这个错误就大概知道是因为没有写完整选中哪一个工作表的B2单元格,所以程序才会报错,为了让程序不报错,我可以进行如下修改:
语句
Range("B1").Select
修改为
Sheets("Sheet1").Range("B1").Selec
t,再进行调试的时候,就不会提示错误了。
可能有的小伙伴就奇怪了,为啥我录制宏的时候不会报错呢?其实我们
录制的宏是放在一个模块里面
,所以操作整个工作簿的工作表都是没问题的,接下来我会录制一个宏进行讲解。
从上面的动态图可以看出,我录制了一个默认命名为【
宏1
】的宏,录制的宏会自动放在一个模块里面。如果我们没有在录制宏的过程中选择单元格,默认只会针对目前选中的工作表。但当选中其他的工作表,我们再运行【
宏1
】,代码也是可以运行的,但所有的操作就是针对选中的工作表,如果希望引用或选择其他单元格里面的内容,
代码必须写完全是操作哪一个工作表的单元格
。
我先选中Sheet4工作表,然后执行【 宏1 】代码,单元格C2:F9都会被填充为数字1。所以如果我们希望代码能够很好地运行,我们可以把复制的代码放到新建的模块中,再次运行就不会出现上面1004的问题啦。
今天的分享就到这里啦,上海太冷了,写字冻手,进被窝去啦~Written by Steven in 20170119^_^
微信公众号:SaveUTime
SUT学习交流群:615356012
关注公众号,提高效率,节约您的时间!