引用单元格中列出的命名范围

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() 很高兴我能帮上忙!

以上是关于引用单元格中列出的命名范围的主要内容,如果未能解决你的问题,请参考以下文章

从单元格中命名文件夹和文件,并将文件保存在文件夹中

范围公式内的单元格引用计算

用excel在一个单元格中列出其他N个单元格中的共同值

excel 如何引用非空单元格中的数据到指定单元格中

EXCEL中,如何引用一个单元格中的数据,作为另一个单元格内容中的一部分?

VBA-在命名范围内查找第一个单元格的位置以引用电子表格的标题行