excel VBA -如何将图纸添加到阵列

z6psavjg  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(188)

我对VBA中的循环/数组几乎没有经验。我期待着复制所有的标签,以“FY”的名称开始到一个新的WB。我有困难的地方是添加标签到数组复制的基础上的条件,因为我不知道,也没有能够找到语法为这一点。我在MsgBox行中添加了占位符。

Sub Generate_Report()
Dim current As Worksheet
Dim currentname As String

'----Add tab name to array if starts with 'FY'----
For Each current In Worksheets
    currentname = current.Name
    If Left(currentname, 2) = "FY" Then
    MsgBox ("Add this tab to the array")
Next

End Sub`
zzlelutf

zzlelutf1#

如果你要使用一个数组,你可以这样做

Dim demo1(10) As Worksheet
Dim apointer As Integer
apointer = 0

Dim current As Worksheet, currentname As String
For Each current In Worksheets
    currentname = current.Name
    If Left(currentname, 2) = "FY" Then
        Set demo1(apointer) = current
        apointer = apointer + 1
    End If
Next

这里的主要问题是您可以存储的最大工作表数量是11(默认情况下,数组从单元格0到单元格10)。
您可能会尝试使用“动态”数组。

Dim demo1() As WorkSheet

Dim apointer As Integer
apointer = 0

Dim current As Worksheet, currentname As String
For Each current In Worksheets
    currentname = current.Name
    If Left(currentname, 2) = "FY" Then
        ReDim Preserve demo1(apointer)
        demo1(apointer) = current
        apointer = apointer + 1
    End If
Next

但使用Collection(或Dictionary)甚至ListBox(参见Collection Object)可能要好得多

相关问题