单元格中列出的参考命名范围

时间:2019-09-15 16:45:57

标签: excel vba

您好,所有在这里编码的人都是新手:

我正在尝试为我拥有的特定excel工作表设置视图。该工作表包含大约300列数据,这些数据非常难以浏览。我为每列定义了一个命名范围,并创建了一些公式来确定特定视图上的命名范围列表。 “ namedrange_1,命名为range_2”等

我已经在VBA代码中输入了一些命名范围,但是发现大约12个清单中出现了1004 Range引用错误。

如果我将代码分成三行,它似乎可以工作。但是,我希望代码可以自动执行到所公式化的单元格(为特定视图列出命名范围)。

例如,另一个工作表中的公式化单元格当前显示为:“ Namedrange_1,NamedRange_2等”

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 个答案:

答案 0 :(得分:0)

这是带有某些更正的完整代码。我测试过,效果很好。请试一试。

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