我正在尝试使用下面的代码将工作表名称添加到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

最佳答案

您应该将ReDim ArraySheets(x)更改为ReDim Preserve ArraySheets(x)

当仅使用ReDim时,不保留数组的内容,这就是为什么仅获得最终工作表名称的原因。使用ReDim Preserve在保留内容的同时调整数组大小。

关于arrays - 在Excel VBA中将工作表名称添加到数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30087836/

10-13 03:29