我在理解一些VBA代码时遇到了一些困难。
我没问题activecell.offset(1,1).select
但是,我有
的问题activecell.offset(1,1).range("A1").select
AND
ActiveCell.Offset(0, 3).Columns("A:A").EntireColumn.Select
为什么有.range(“A1”)?那里为什么有.columns?我读了一些其他帖子说这些事情没有必要。但是我使用相同的格式编写了一些代码,将.range(“A1”)替换为其他范围并产生了不同的结果。你能解释一下这些东西吗?我的意思是偏移后的.range(“A1”)。我继承了其他试图理解的代码。
答案 0 :(得分:3)
录制宏时,通常会在Excel中添加的.range(“A1”)部分,即使您只选择一个单元格也是如此。基本上“A1”指的是.activecell.offset位置左上角的单元格。所以,例如,如果您将其更改为:
ActiveCell.Offset(0, 1).Range("A1:A3").Select
活动单元格将成为距离起始单元格为0行,+ 1列的单元格,然后选择区域1列和3行大小,但此处列A和行3是对activecell.offset的RELATIVE引用位置,而不是引用工作表列A,第1-3行。玩“A1:A3”来看看我的意思。
代码可能更简单,只需说
ActiveCell.Offset(0, 1).Select
这将完全有效,但此代码不允许您选择多个单元格。为此,您需要使用RANGE。
答案 1 :(得分:2)
activecell.offset(1,1).range(“A1”)。select应从活动单元格中选择一个单元格向下一个单元格和右侧一列。
ActiveCell.Offset(0,3).Columns(“A:A”)。EntireColumn.Select应选择活动单元格右侧的第三列。
答案 2 :(得分:0)
这些是正确的代码
Range("a1").Offset(1, 1).Select
Columns("A:A").EntireColumn.Offset(0, 3).Select