excel VBA中出现运行时错误"1004“:应用程序定义或对象定义错误,该怎么办啊?

黄色部分是出错的地方,代码下面是提醒框,实在是看不出哪里出错了?希望哪位大侠帮帮我,谢谢啦。。。。还有在循环中是否能使用j=ActiveSheet.Cells(Rows.... 黄色部分是出错的地方,代码下面是提醒框,实在是看不出哪里出错了?希望哪位大侠帮帮我,谢谢啦。。。。
还有在循环中是否能使用 j = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 这样的语句了?因为我需要找到每一次通过高级筛选插入新值之后找到下一格空行以便复制新的内容,所有如果这个语句不行的话,我如何通过别的办法在每一次循环中判断sheet5中新的空行?

希望大虾们能能关注关注哈,小女子感激不尽啊!!!
展开
 我来答
crazy0qwer
2013-08-03 · TA获得超过3301个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1324万
展开全部
将黄色代码部分修改为 copytorange:=rng
追问
这样设置之后,确实运行没有错误了,而且那个空行判断也是正确的,得到的结果也是我要的,真是高手啊,灰常非常感谢~~~~
但是为什么非要这样设置呢?
追答
因为你前面已经将 rng 这个变量定义为单元格了,而且也 set 这个变量为一个单元格了。所以这个变量就表示一个单元格。可直接用它代替 range。

而 range 也是表示一个单元格的,当时它的表示方法主要有这么几种:
1、range("a1") 直接在括号内加上双引号,然后加上单元格地址。
2、range("定义的名称") 在工作表中定义了名称后,可以直接在双引号内写上名称来代码名称所引用的区域,就像你代码中的 range("sheet1judgment") 里面的 judgment 也是一个名称吧?
3、
i=3

range("a" & i) 这样表示 a3 单元格,要注意range 只能是行号为变量,列号不能为变量。

主要就这样表示,当然还有其他一些表示方法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pxiceplay
2013-08-03 · TA获得超过1.9万个赞
知道大有可为答主
回答量:4881
采纳率:50%
帮助的人:5171万
展开全部
楼上说的对,因为range()里面的是文本或者文本变量,但是你上面定义的rng是个range变量,可以直接作range用,加了个range()反而就会出错了
追问
谢谢你啊,我明白了~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
georgetalent
2013-08-03 · 知道合伙人旅游行家
georgetalent
知道合伙人旅游行家
采纳数:242 获赞数:1046
毕业于北京装甲兵工程学院计算机系指挥自动化专业,现任沈阳市旅游局区域合作处职员

向TA提问 私信TA
展开全部
感觉你是自动生成的宏,然后加了点语句。冗余很多,要不你把源文件和要求发给我,我试试改改。
QQ一把二零四六四灵刘三。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钟令蹉夜天
2019-09-19 · TA获得超过3974个赞
知道大有可为答主
回答量:3129
采纳率:33%
帮助的人:418万
展开全部
请确认变量r的定义是否正确。
如果Sheet4的第4列末尾行数小于4,则导致循环变量d的无效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式