ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 253|回复: 13

[求助] 有个小问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-4 16:07 | 显示全部楼层 |阅读模式


Sheet1里A12值=Sheet1里A12值本身+表TO里第一列的行数值-1
Sheet1.Range("A12").Value = Sheet1.Range("A12").Value + Sheets("TO").Cells(Rows.Count, 1).End(3).Row - 1

Sheets("TO").Cells(Rows.Count, 1).End(3).Row这里的Rows前到底要不要加.或者加Sheets("TO").?

TA的精华主题

TA的得分主题

发表于 2024-11-4 16:42 | 显示全部楼层
本帖最后由 z865593849 于 2024-11-4 16:45 编辑

要加的,不然就是默认activesheet image.png

TA的精华主题

TA的得分主题

发表于 2024-11-4 16:42 | 显示全部楼层
最好是加上Sheets("TO").,考虑到03与07的行数不同,不加有出错的几率

TA的精华主题

TA的得分主题

发表于 2024-11-4 16:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不加的话,会在默认显示的sheet上获取最大行号,你在“T0”表上运行没问题,切到sheet1里就不对了

TA的精华主题

TA的得分主题

发表于 2024-11-4 16:46 | 显示全部楼层
如果是Rows.Count这里的话,一个文件内所有工作表rows都是相同的,不需要加工作表限定。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-4 16:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
小凡、、、 发表于 2024-11-4 16:44
不加的话,会在默认显示的sheet上获取最大行号,你在“T0”表上运行没问题,切到sheet1里就不对了

所以是:Sheet1.Range("A12").Value = Sheet1.Range("A12").Value + Sheets("TO").Cells(Sheets("TO").Rows.Count, 1).End(3).Row - 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-5 11:04 | 显示全部楼层
大灰狼1976 发表于 2024-11-4 16:46
如果是Rows.Count这里的话,一个文件内所有工作表rows都是相同的,不需要加工作表限定。

Sheets("TO").Cells(Rows.Count, 1).End(3).Row也就是说:(Rows.Count, 1)前面的Sheets("TO").Cells已经给界定了?是这样吗?

TA的精华主题

TA的得分主题

发表于 2024-11-5 11:26 | 显示全部楼层
rows.count前面不加前缀是从activesheet取的
如果activesheet不是sheets("TO"),而activesheet是03的表,而sheets("TO")是07的表,如果数据量还超过了03表的最大值,则可能取值范围就不准确
反之,如果activesheet是07的表,而sheets("TO")是03的表,这里会报错
以上两种情况是不确定因素,所以加上前缀才能保证不出这个问题

TA的精华主题

TA的得分主题

发表于 2024-11-5 11:58 | 显示全部楼层
sampsonpon 发表于 2024-11-5 11:04
Sheets("TO").Cells(Rows.Count, 1).End(3).Row也就是说:(Rows.Count, 1)前面的Sheets("TO").Cells已经 ...

不是的,rows.count可以看作一个常量,同一文件里面所有工作表行数都是一样的,所以不必做限定,除非是xls格式。

TA的精华主题

TA的得分主题

发表于 2024-11-5 13:50 | 显示全部楼层
要加的。不加的话会限制使用场景。
当宏放在模块中的时候,需要明确具体的sheet,否则sheet不同结果也不同了。取数会错误。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 02:15 , Processed in 0.058742 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表