Excel VBA 中有关使用 UBound + CurrentRegion 提示类型不匹配的问题及解决方案

先来说一下解决方案:使用 CurrentRegion.Value 即可。

--------

今天需要在 Excel 里放一个小程序,于是在网上边搜 VBA 边写程序。

其中一步要获取“单元格所在列的最后一行的行数”,网上给了很多方法,其中一个是用求上限函数:Ubound(数组位置)

按照文章的方法,我可以写:

rowMax = UBound(Worksheets(1).Range("b2").CurrentRegion, 1)

但是运行的时候系统提示:

类型不匹配?

于是我想调一下监视窗口,结果点了半天屏幕没反应……后来才发现是在窗口的最下面的那一小条,拉起来……(感觉好傻哈哈)

经过查询发现,如果只写到“CurrentRegion”,那么类型是variant/object/range,但是如果后面再写上".value"的话,类型则是variant/variant(1 to 40, 1 to 4),就解决了。仔细查了一下函数里的内容,发现竟然没有 value 属性,但是有 value2,而且在后面写“.value2”也是可以的。Hmm, interesting...

我用的版本是买电脑送的Office 2019 家庭学生版

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值