引用单元格中列出的命名范围
Posted
技术标签:
【中文标题】引用单元格中列出的命名范围【英文标题】:Reference Named Ranges listed within a Cell 【发布时间】:2019-09-15 16:45:57 【问题描述】:大家好,这里是编码新手:
我正在尝试为我拥有的特定 Excel 工作表设置视图。该工作表有大约 300 列数据,浏览起来非常麻烦。我为每一列定义了一个命名范围,并创建了一些公式来确定特定视图上的命名范围列表,例如。 “命名范围_1,命名范围_2”等。
我在VBA
代码中输入了一些命名范围,但注意到大约 12 个左右的列表出现 1004 Range 引用错误。
如果我将代码分成 3 行并且它似乎可以工作。但是,我希望代码能够自动生成公式单元格(特定视图的命名范围列表)。
例如,另一个工作表中的公式化单元格当前显示为:“Namedrange_1, NamedRange_2, Etc”
Private Sub CMB_TAKEOFF_BASIC_Click()
Application.ScreenUpdating = False
Sheets("Pipe").Visible = True
Worksheets("Pipe").Activate
Call CMB_All_Click
Columns("B:XFD").Select
Selection.EntireColumn.Hidden = True
Range("NamedRange_1,NamedRange_2).EntireColumn.Hidden = False
Range("NamedRange_13,NamedRange_14).EntireColumn.Hidden = False
ActiveWindow.ScrollColumn = 1
Application.ScreenUpdating = True
End Sub
查找代码以从 Excel 工作表中的计算中引用命名范围列表,这样我就不必在每次修改视图时手动更改代码。
【问题讨论】:
【参考方案1】:这是带有一些更正的完整代码。这很好用,我测试过。请试一试。
Private Sub CMB_TAKEOFF_BASIC_Click()
Dim i As Integer
Dim arr() As String
Application.ScreenUpdating = False
Worksheets("Pipe").Visible = True
Worksheets("Pipe").Activate
'Call CMB_All_Click
Columns("B:XFD").EntireColumn.Hidden = True
'fill the array with values: split B20's value by commas.
arr = Split(Worksheets("VIEWS").Range("B20"), ",")
'for each value (named range) hide its column.
For i = 0 To UBound(arr)
Range(arr(i)).EntireColumn.Hidden = False
Next
ActiveWindow.ScrollColumn = 1
Application.ScreenUpdating = True
End Sub
【讨论】:
你是对的,但我希望它引用一个我列出了命名范围的单元格(用逗号分隔) 现在我想我开始明白了。哪个是配方细胞?我的意思是有列表的单元格? 单元格位于:=VIEWS!B20。公式化单元格的示例如下: TEXTJOIN(",",TRUE,IF(B6="X",B$1,""),IF(C6="X",C$1,""),IF( D6="X",D$1,"")) 而值是命名范围 我得到一个编译错误:找不到方法或数据方法。高亮第一行(Private Sub CMB_TAKEOFF_BASIC_Click() 很高兴我能帮上忙!以上是关于引用单元格中列出的命名范围的主要内容,如果未能解决你的问题,请参考以下文章