首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveCell.Offset混淆

ActiveCell.Offset混淆
EN

Stack Overflow用户
提问于 2015-03-18 22:45:20
回答 1查看 60.5K关注 0票数 2

我在阅读上一个模块中的一些VBA时,发现了一些让我困惑的事情:

代码语言:javascript
复制
Sheets("Setup").Select
Range("Start").Select
ActiveCell.Offset(1, 0).Range("A1").Select

我想知道ActiveCell.Offset(列,行).Range().Select行是如何工作的。在本例中,"Start“范围是一个单元格A18,偏移量将它偏移一行,这就是我得到的结果。但是我并不理解在这里插入范围(“A1”)的方式和目的。

不会的

代码语言:javascript
复制
Sheets("Setup").Select
Range("Start").Select
ActiveCell.Offset(1, 0).Select

同样的工作,更少的困惑?插入Range("A1")子句有什么原因吗?

非常感谢,对于这个初学者的问题,我很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 23:04:28

简短的回答

是的,在这种特殊情况下,两者都做同样的事情。删除Range("A1")是可以的。

长长的答案

这是因为您在下面一行中使用了ActiveCell

代码语言:javascript
复制
ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell是所选范围内的第一个单元格。

考虑下面的宏:

代码语言:javascript
复制
Sub Macro1()
    Debug.Print ActiveCell.Address
End Sub

无论您选择什么范围,这都将打印所选内容中白色单元格的地址。

ActiveCell$A$4

示例

在单个单元格上调用Offset(1,0)只会偏移该单元格。所以如果我们看一下你的原始代码:

代码语言:javascript
复制
Sub Macro2()
    Sheets("Setup").Select
    Range("Start").Select
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

让我们假设我之前显示的选择(A2:B4)是"Start“的命名范围,我们可以准确地遍历正在发生的事情:

在本例中,

  1. Range("Start").Select将选择range A2:B4。从而使ActiveCellA2.

相等

接下来,我们在ActiveCell上调用Offset(1,0),这相当于Range("A2").Offset(1,0)将我们放在range A3 (比A2低1行)

现在,我们调用.Range("A1"),它将获取该范围内的第一个单元格。因为当前的范围是 A3,所以.Range("A1")给我们提供了range

当然,A3仍然是

  1. 的唯一选择

什么时候.Range("A1")是真正有用的?

考虑以下不带任何Range("A1")调用的示例:

代码语言:javascript
复制
Sub Macro3()
    Sheets("Setup").Select
    Range("Start").Select
    Selection.Offset(1, 0).Select
End Sub

由于我们已将ActiveCell更改为Selection,因此Offset(1,0)将选择与"Start“相同的维度范围,只是偏移了1行。

即:

如果这是“Start”的范围:

我们运行示例宏:

我们有一个相同尺寸的新选择。

但是,如果我们将示例宏更改为包含Range("A1")

代码语言:javascript
复制
Sub Macro4()
    Sheets("Setup").Select
    Range("Start").Select
    Selection.Offset(1, 0).Range("A1").Select
End Sub

现在仅选定选定内容中的第一个单元格。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29125104

复制
相关文章

相似问题

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