2

Excel ワークブックに Data1、Data2 などのシートが含まれている可能性があります。知りたいのは、ワークブックにそのようなシートがいくつあるかです。

シート名を比較してカウントしようとしていました。しかし、それは正しく機能しませんでした。

誰かがここで私を助けてくれることを願っています。前もって感謝します。

4

2 に答える 2

6

これを試して

msgbox thisworkbook.sheets.count

ワークブックのシート数を返します。

「Data」のような名前のシートの数を返すには、次のようにします。

Dim iCountSheets As Integer
Dim oSheet As Worksheet
'
For Each oSheet In Sheets
    If oSheet.Name Like "Data*" Then
       iCountSheets = iCountSheets + 1
    End If
Next

MsgBox iCountSheets & " sheets like data"

もう 1 つの方法は、シート コレクションをインデックスで反復処理することです。

Dim iCountSheets As Integer, iIdx As Integer
Dim oSheet As Worksheet
'
For iIdx = 1 To Sheets.Count ' non-zero based collection
    If Sheets(iIdx).Name Like "Data*" Then
       iCountSheets = iCountSheets + 1
    End If
Next

MsgBox iCountSheets & " sheets like data"
于 2013-03-28T13:49:28.153 に答える
4

これはあなたがしようとしていることですか?

'~~> Case Sensitive
Sub Sample()
    Dim ws As Worksheet
    Dim shCount As Long

    For Each ws In ThisWorkbook.Sheets
        If ws.Name Like "Data*" Then shCount = shCount + 1
    Next ws

    Debug.Print shCount
End Sub

'~~> Or use the below if you have sheets like data1, Data2, DaTa3 etc
Sub Sample()
    Dim ws As Worksheet
    Dim shCount As Long

    For Each ws In ThisWorkbook.Sheets
        If UCase(ws.Name) Like "DATA*" Then shCount = shCount + 1
    Next ws

    Debug.Print shCount
End Sub
于 2013-03-28T13:49:37.000 に答える