【问题标题】:Selecting a Named Range Cell Location EXCEL VBA选择命名范围单元格位置 EXCEL VBA
【发布时间】:2021-08-30 22:05:15
【问题描述】:

基本上我想选择一个我的命名范围引用的特定单元格,而不是返回值。我想模仿以下内容,但在选择单元格地址时出错。

Range("AU8").Select

我一直在尝试但没有奏效。

ThisWorkbook.Names("Root").Select
ThisWorkbook.Names("Root").Cells(1,1).Select

有谁知道如何解决这个问题?

【问题讨论】:

  • “一直没有工作”并不是对运行代码时发生的情况的真正有用描述。发布时,包含您看到的确切错误总是有帮助的。

标签: excel vba named-ranges


【解决方案1】:

使用Name 对象的.RefersToRange 属性。像这样:

ThisWorkbook.Names("Root").RefersToRange.Select

但如果工作表未处于活动状态,.Select 方法将失败。更好的方法是Application.Goto,如下所示:

Application.Goto ThisWorkbook.Names("Root").RefersToRange

旁注: .Select 通常是一种无意义且浪费的方法,会阻碍宏脚本的速度和准确性。除了依赖.SelectSelection,您还可以删除两者,并直接引用您想要与之交互的范围。

比较:

    ThisWorkbook.Activate
    Sheets("Sheet1").Activate
    Range("B2").Select
    Selection = "Input Text"
    
    ThisWorkbook.Sheets("Sheet1").Range("B2") = "Input Text"

最后一行与前 4 行的作用相同,但跳过了单独激活工作簿、工作表和范围的步骤,从而消除了屏幕抖动,并大大加快了脚本的执行速度。

【讨论】:

    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    相关资源
    最近更新 更多