将字符串变量中的名称分组

时间:2015-05-27 23:26:32

标签: excel vba excel-vba

我想将一些工作表名称包含在字符串变量中的工作表分组,工作表组将用于格式化组中的每个工作表。

字符串(让我们调用它,SheetsFormat)包含需要格式化的所有工作表名称,字符串中的每个值在创建时都添加到动态字符串中。

问题是如何创建一组引用SheetsFormat字符串的工作表?

字符串内容的示例:" Mon Maint"," Mon Mgnt"," Tue Prod"等

我使用的代码是:

Dim ws as worksheet, ws_group As Worksheets
Set ws_group = Sheets(Array(SheetsFormat))
For Each ws In ws_group
'some staff
Next

2 个答案:

答案 0 :(得分:3)

这是一个让您前进的示例程序。您可以通过多种方式构建数组,但最终结果将遵循此模式 - 迭代数组(或类似)以对工作表集执行相同的操作。

Sub SampleDoSomethingToMultipleSheets()

    Dim SheetsFormat(3) As String
    SheetsFormat(0) = "Mon Maint"
    SheetsFormat(1) = "Mon Mgnt"
    SheetsFormat(2) = "Tue Prod"

    Dim idx As Integer
    For idx = 0 To UBound(SheetsFormat) - 1
        With Sheets(SheetsFormat(idx))
            ' put your code here, e.g.
            .Range("A1").Value = "StackOverflow is awesome"
        End With
    Next idx

End Sub

答案 1 :(得分:2)

这是一个做你想要的例子。它使用Split函数,该函数根据分隔符将字符串拆分为数组。

Sub LoopThroughSheetsString()
Dim SheetsFormat As String
Dim ws As Excel.Worksheet
SheetsFormat = "Sheet1,Sheet2,Sheet3"

'loop through the array created by splitting SheetsFormat on commas
For Each ws In Sheets(Split(SheetsFormat, ","))
    Debug.Print ws.Name
Next ws
End Sub

请注意,它只是一个长字符串,仅在开头和结尾带有双引号。