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
我一直在尝试遍历某个 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