按名称搜索工作表并使用 VBScript 激活它

Search for worksheet by name and activate it using VBScript

我正在编写 VBScript 代码以在打开的 Excel 工作簿中按名称激活特定工作sheet。

首先,我需要检查 Excel 工作簿的不同实例是否存在 "ITM" sheet,如果存在,则激活它。如果找到多个 "ITM" sheet,我想显示一个有错误的消息框(例如 "Error, many ITM sheets are opened")。

你能帮我修改并完善下面的代码吗?

Dim objXL, WB, wkb, i, xCount
Set objXL = GetObject(, "Excel.Application")
Set WB = objXL.Workbooks

For Each wkb In WB
    If Windows(wkb.Name).Visible Then
        For i = 1 To ActiveWorkbook.Sheets.Count
            If objXL.Sheets(1).Name = "ITM" Then 
                xCount = xCount + 1
            End If 
        Next
    End If 
Next
MsgBox("There are " & CStr(xCount) & " sheets opened")

尝试以下操作:

Dim objXL
Dim objWorkbooks
Dim objWorkbook
Dim objWorksheet
Dim iSheetCounter
Dim iMatches

Set objXL = GetObject(, "Excel.Application")
Set objWorkbooks = objXL.Workbooks

' Initalize Matches counter to 0
iMatches = 0

' Iterate through all workbooks
For Each objWorkbook In objWorkbooks

    ' Iterate through all worksheets
    For Each objWorksheet In objWorkbook.Worksheets

        ' Check worksheet name
        If objWorksheet.Name = "ITM" Then
            iMatches = iMatches + 1
        End If

    Next

Next

If iMatches > 1 Then MsgBox ("Too many ITM sheets opened (" & iMatches & " sheet(s) opened).")
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set xlVbscript = objExcel.WorkBooks.Open("C:\Users\Excel.xlsx")

Find_Sheet = "Sheet1"

For TotalSheetsCount = 1 To xlVbscript.Sheets.Count
vSheet = xlVbscript.Sheets(TotalSheetsCount).Name
If Find_Sheet = vSheet Then
Sht = xlVbscript.Sheets(TotalSheetsCount).Name

MsgBox(TotalSheetsCount)'''''''''''''''Finded Sheets Index'''''''''''''

End If
Next

xlVbscript.save
xlVbscript.Close

objExcel.Quit
set objExcel=nothing