Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 引用单元格中列出的命名范围_Excel_Vba - Fatal编程技术网

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

Excel 引用单元格中列出的命名范围,excel,vba,Excel,Vba,您好,这里是全新的编码: 我正在尝试为我拥有的特定excel工作表设置视图。工作表大约有300列数据,浏览起来非常麻烦。我为每列定义了一个命名范围,并创建了一些公式来确定特定视图上的命名范围列表,如“namedrange_1,namedrange_2”等 我在VBA代码中输入了一些命名范围,但注意到大约12个列表中出现了1004范围参考错误 如果我将代码分为3行,它似乎可以工作。但是,我希望代码能够自动转换为公式化的单元格(特定视图的命名范围列表) 例如,另一张工作表中的公式化单元格当前显示为:

您好,这里是全新的编码:

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

我在
VBA
代码中输入了一些命名范围,但注意到大约12个列表中出现了1004范围参考错误

如果我将代码分为3行,它似乎可以工作。但是,我希望代码能够自动转换为公式化的单元格(特定视图的命名范围列表)

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


正在查找代码以引用excel工作表中计算的命名范围列表,这样我就不必在每次修改视图时手动更改代码。

这是完整的代码,并进行了一些更正。这个很好用,我测试过了。请试一试

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

你是对的,但我希望它引用一个单元格,我列出了命名范围(用逗号分隔),现在我想我开始理解它了。哪个是配方细胞?我是指包含列表的单元格?该单元格位于:=视图!B20。公式化单元格的示例如下:TEXTJOIN(“,”,TRUE,IF(B6=“X”,B$1,”),IF(C6=“X”,C$1,”),IF(D6=“X”,D$1,”),而值是命名的范围。我得到一个编译错误:找不到方法或数据方法。突出显示第一行(私人子CMB\u起飞\u基本\u点击()很高兴我帮了忙!
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