【问题标题】:How to activate a range in excel VBA using ActiveCell.Offset如何使用 ActiveCell.Offset 在 excel VBA 中激活范围
【发布时间】:2019-06-03 22:19:42
【问题描述】:

我正在尝试从当前活动单元格开始激活范围 4 和“n”。我是 VBA 和整个编程的新手。

我尝试将每个“ActiveCell.Offset(0, 0)”放在自己的括号中,而没有。它也适用于第一个作为“ActiveCell.Offset(0, 1)”,但我希望激活范围内的左上角单元格是原始 ActiveCell

     Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(n, 4)).Activate

当我将 ActiveCell.Offset(0, 0) 放在他们自己的括号中时,我收到一条错误消息“对象'_global'的方法'范围'失败”。在没有括号的情况下运行,它什么也不做,没有错误。

【问题讨论】:

  • 我想你最后想要.Select。并删除.Offset(0,0)
  • 或者直接使用Resize:ActiveCell.Resize(n,4).select
  • 正如@chris neilsen 在他的回答中提到的,尽量避免完全使用选择/激活。你想用这个范围做什么?很可能有一种方法可以做到这一点,而无需先选择或激活它。

标签: excel vba range


【解决方案1】:

来自documentation

Range.Activate 方法

激活单个单元格,该单元格必须在当前选择范围内。要选择一系列单元格,请使用Select method.

所以,你的代码可能是

Range(ActiveCell, ActiveCell.Offset(n, 4)).Select

也就是说,请考虑完全不使用激活/选择。 See here for how.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多