首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以理解VBA代码.Range(.Cells(1,1),.Cells(.Cells(.Rows.Count,1).End(xlUp).Row,1))

难以理解VBA代码.Range(.Cells(1,1),.Cells(.Cells(.Rows.Count,1).End(xlUp).Row,1))
EN

Stack Overflow用户
提问于 2021-05-11 09:08:32
回答 1查看 345关注 0票数 0
代码语言:javascript
复制
.Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1))

有人能解释一下这段代码的意思吗?我对VBA非常陌生,很难理解某些代码逻辑的语法。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-11 09:30:19

该片段通常与with sheet(...)结合使用,以获得最后填充的行。

示例:

代码语言:javascript
复制
Set ws = ActiveSheet

With ws
    LR = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1)).Count
End With

这里LR将是A列中具有值的最后一行。

这一行代码执行以下操作:

创建从A1 (单元格(1,1))到A&(最后填充的行)的范围,方法是在最后一行设置“选择器”,并执行CTRL +向上箭头(类似)。

然后将此范围的计数返回给LR。

使用这个稍微短一些的语法,您可以得到相同的结果:

代码语言:javascript
复制
Set ws = ActiveSheet

With ws
    LR = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

在其中,只需从A列的最后一行执行CTRL +向上箭头,而不是创建一个范围,并返回行号。

较短语法的真正优点是您可以很容易地更改它以获得最后的值:

代码语言:javascript
复制
With ws
    LR = .Cells(.Rows.Count, "A").End(xlUp).Value   ' .row is changed to .value
End With
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67483749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档