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