选择命名范围单元格位置 EXCEL VBA

Selecting a Named Range Cell Location EXCEL VBA

基本上我想 select 我的命名范围引用的特定单元格而不返回值。我想模仿下面的内容,但是 selecting 单元格地址时出现错误。

Range("AU8").Select

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

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

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

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

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

但如果 sheet 未激活,.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 行做同样的事情,但跳过了激活工作簿、sheet 和范围的步骤,这消除了屏幕抖动,并加快了脚本的执行速度大量。