Excel vba 遍历包含第一个字母 M 的所有工作表

Excel vba loop through all sheets containing first letter M

我一直在尝试遍历某个 sheet 数字,我有 20 个 sheet 都以 M 开头,例如 M1、M2 等等,直到 M20,我的问题是我正在循环和写作,但我不是只在 M sheets 上写作,而是在所有 sheets.

上写作
Sub CountWSNames()
        Dim I As Long
        Dim xCount As Integer
        For I = 1 To ActiveWorkbook.Sheets.Count
            If Mid(Sheets(I).Name, 1, 1) = "M" Then xCount = xCount + 1

            ThisWorkbook.Worksheets(I).Range("A50") = "V" 'This line must write only to M sheets
        Next
        MsgBox "There are " & CStr(xCount) & " sheets that start with 'M'", vbOKOnly, "KuTools for Excel"
    End Sub

一小段代码与我的相似。

ThisWorkbook.Worksheets(I).Range("A50") = "V"

此行只能影响 sheet 以 M 开头的单元格 ("A50")。

每个都可以使用。

For each sht in ActiveWorkbook.Sheets
    If Mid(sht.Name, 1, 1) = "M" Then 
        xCount = xCount +1
        sht.Range("A50") = "V" 'This line must write only to M sheets
    End if
Next

您需要将两种语法都包装在 if.

如果您不关心 sheet 计数,而只想将值写入那些 sheet,那么您可以使用:

Sub WriteToMSheets()
    Dim ws as Worksheet
    For Each ws in Thisworkbook.Worksheets
        If Ucase(Left(ws.Name,1)) = "M" Then ws.Range("A50").Value = "V"
    Next ws
End Sub