Искать лист по имени и активировать его с помощью VBScript - PullRequest
1 голос
/ 22 октября 2019

Я пишу код VBScript, который активирует конкретный лист по имени в открытой книге Excel.

Прежде всего мне нужно проверить различные экземпляры книг Excel, если лист "ITM" существует и если да,активировать его. Если найдено несколько листов «ITM», я хочу отобразить окно с ошибкой (например, «Ошибка, много листов ITM открыто»).

Можете ли вы помочь мне изменить и дополнить приведенный ниже код?

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")

Ответы [ 2 ]

0 голосов
/ 22 октября 2019
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
0 голосов
/ 22 октября 2019

Попробуйте следующее:

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).")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...