作者:绿色风
分类:
时间:2022-08-18
浏览:129
楼主 zzmxy |
Q: 我想清除IMEC表格中第三行及以后所有的数据,这样的写法为何错误? (当鼠标在IMEC表中的时候,运行没问题, 但是在其他sheet中的时候,无法运行)
- Sheets("IMEC").Range("a3", Range("a3").End(xlDown).End(xlToRight)).Clear
A: 上面代码中的第二个Range(),由于没有指明母对象,默认情况下就为当前工作表,因此当IMEC非活动工作表时,区域计算上必然出现错误。 所以,当无法确定代码是在本工作表中运行时,代码里最好是都明确母对象,可修改为如下:
- Sheets("IMEC").Range("a3", Sheets("IMEC").Range("a3").End(xlDown).End(xlToRight)).Clear
我们常见的问题还有如:iRow=Cells(Rows.Count,1).End(xlUp).Row 这也经常会出现这种情况,就是大家没有对Cells()指明母对象,但代码又不在该工作表内运行,结果得到的iRow就往往与想象的不同,以为代码出错了。 |
2楼 mn860429 |
刚开始学习的时候也犯过这个错误 |
3楼 alexltr |
那第一个“a3”为什么不用? |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一