【问题标题】:Check for a Sheet in Excel using VBA使用 VBA 在 Excel 中检查工作表
【发布时间】:2013-03-28 13:40:15
【问题描述】:

我的 Excel 工作簿中可能有名为 Data1、Data2、... 我想知道我的工作簿中有多少这样的表格。

我试图比较工作表名称并保持计数。但它不能正常工作。

所以希望有人可以在这里帮助我。提前致谢。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    试试这个

    msgbox thisworkbook.sheets.count
    

    这将返回工作簿中工作表的数量。

    要返回名称如“数据”的工作表数量,请执行以下操作:

    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"
    

    另一种方法是按索引遍历工作表集合:

    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"
    

    【讨论】:

    • 我的打字速度也不够快!
    • 我看到您在我投票后更新了您的帖子,但最新的编辑有 2 个重大错误。 1. 你的 If 缺少 End-If 2 设置 iIdx = 0 会给你一个错误。我很惊讶这篇文章在你编辑 LOL 后得到的支持。
    • +1 (*2) 是的,你是对的,我复制粘贴和输入的速度太快,忘记了工作表集合不是从零开始的!
    • 来吧,关键字和变量名的大写是在 OP 副本将其粘贴到代码模块中后由 vb 编辑器完成的......所以这些更多的是演示失败而不是代码错误 :)
    • 感谢您的回答。它对我来说真的很好用。正是我想要的。我不知道你在 VBA 中有一个“喜欢”。
    【解决方案2】:

    这是你正在尝试的吗?

    '~~> 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      相关资源
      最近更新 更多