选择命名范围单元格位置 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
通常是一种毫无意义且浪费的方法,会阻碍宏脚本的速度和准确性。您可以不依赖 .Select
和 Selection
,而是将两者都删除,并直接引用您想要与之交互的范围。
比较:
ThisWorkbook.Activate
Sheets("Sheet1").Activate
Range("B2").Select
Selection = "Input Text"
ThisWorkbook.Sheets("Sheet1").Range("B2") = "Input Text"
最后一行与前 4 行做同样的事情,但跳过了激活工作簿、sheet 和范围的步骤,这消除了屏幕抖动,并加快了脚本的执行速度大量。
基本上我想 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
通常是一种毫无意义且浪费的方法,会阻碍宏脚本的速度和准确性。您可以不依赖 .Select
和 Selection
,而是将两者都删除,并直接引用您想要与之交互的范围。
比较:
ThisWorkbook.Activate
Sheets("Sheet1").Activate
Range("B2").Select
Selection = "Input Text"
ThisWorkbook.Sheets("Sheet1").Range("B2") = "Input Text"
最后一行与前 4 行做同样的事情,但跳过了激活工作簿、sheet 和范围的步骤,这消除了屏幕抖动,并加快了脚本的执行速度大量。