Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1292|回复: 5

一个关于VBA的入门问题

[复制链接]
发表于 2020-5-9 01:14 | 显示全部楼层 |阅读模式
sheets(2)里是有很多行数据的,但是用以下代码得到的结果一直是2,不管怎么删改数据结果都是2,但是如果把最后的范围改成Range("a2:a100"),得到的结果就是正确的了
Sheet1.Range("d28") = Application.WorksheetFunction.CountA(Sheets(2).Range("a2:a" & Range("a65536").End(xlUp).Row))
想知道这是什么原因啊,为什么不能用Range("a2:a" & Range("a65536").End(xlUp).Row)表示动态的范围

发表于 2020-5-9 08:28 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2020-5-9 10:07 | 显示全部楼层
Excel学徒123 发表于 2020-5-9 08:28
把父对象给上Range("a65536")

不太明白。。能稍微详细一点嘛
回复

使用道具 举报

 楼主| 发表于 2020-5-9 10:24 | 显示全部楼层
Excel学徒123 发表于 2020-5-9 08:28
把父对象给上Range("a65536")

刚刚又试了一下 如果活动工作表是sheet1,运行宏结果还是2,如果活动工作表停留在别的页面,运行宏的结果就是正确的,这又是什么原因。。
回复

使用道具 举报

发表于 2020-5-9 11:13 | 显示全部楼层
本帖最后由 shuidisyy 于 2020-5-9 11:15 编辑

单元格的父对象就是工作表,Sheets(2).("a65536").End(xlUp).Row
不加的话,取得的是活动工作表的最大行号
回复

使用道具 举报

 楼主| 发表于 2020-5-9 15:03 | 显示全部楼层
shuidisyy 发表于 2020-5-9 11:13
单元格的父对象就是工作表,Sheets(2).("a65536").End(xlUp).Row
不加的话,取得的是活动工作表的最大行号

明白了!非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 05:54 , Processed in 0.275792 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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