在Excel VBA中将工作表名称添加到数组

NDu*_*nix 2 arrays excel vba worksheet

我正在尝试使用下面的代码将表单名称添加到Excel VBA中的数组中.它只获取一个值(始终是最后一个工作表名称).例如,如果我有2张:List1和List2,它只会拾取List2并显示第一张纸的空白值.如果我添加4,它只显示第4个,依此类推.我不确定为什么我会得到空白的价值观.

Dim curSheet As Worksheet
Dim ArraySheets() As String
Dim x As Variant

For Each curSheet In ActiveWorkbook.Worksheets

    If curSheet.Name Like "*List*" Then

        ReDim ArraySheets(x)

        ArraySheets(x) = curSheet.Name

        x = x + 1

    End If

Next curSheet
Run Code Online (Sandbox Code Playgroud)

Sou*_*ire 6

你应该ReDim ArraySheets(x)改为ReDim Preserve ArraySheets(x)

当你只使用ReDim数组的内容时,不保留,这就是为什么你只得到最终的工作表名称.使用ReDim Preserve在保留内容的同时重新调整数组大小.