2016-10-13 8 views
-1

Я искал всюду для ответа на этот вопрос, но я не могу найти его. как проверить, есть ли в рабочей книге более 1 листа.VBA, чтобы проверить, есть ли у Рабочего листа несколько Рабочих листов

+3

Попробуйте это: 'Если ThisWorkbook.Worksheets.Count> 1 Then MsgBox "Существует более чем один лист в этом файле Excel."' – Ralph

+1

Ну вы не должны посмотрели * везде * ... :) Добавить в закладки [this] (https://msdn.microsoft.com/en-us/library/office/ff194068 (v = office.14) .aspx) и часто ссылайтесь на него. Требуется немного, чтобы привыкнуть к тому, как организована объектная модель, и вы будете достаточно много рыть и пить о различных кроличьих лунках, но если вам когда-нибудь интересно, что возможно, обратитесь к объектной модели , –

+0

@Ralph Это не работает для меня. У меня есть рабочие листы, но ничего не появляется. – Robby

ответ

1

Это то, что в конечном итоге работает лучше для меня. Он включает в себя несколько ответов, чтобы делать то, что он делает.

Sub CountSheets() 
Dim mainWB As Workbook 
Dim mainWS As Worksheet 
Set mainWB = ActiveWorkbook 
Set mainWS = mainWB.Sheets(1) 

If mainWB.Sheets.Count > 1 Then MsgBox "There is more than one worksheet in this Excel file." 
End Sub 
1

Чтобы получить количество рабочих листов в пределах открытой книги, что-то вроде:

Sub qwerty() 

    MsgBox "the number of worksheets in this workbook is: " & ThisWorkbook.Worksheets.Count 

End Sub 

Это исключит диаграммы и т.д.
Если у вас есть несколько книг открыть, а затем что-то вроде:

MsgBox "the number of worksheets in this workbook is: " & wb.Worksheets.Count 

Куда вы бы указали Setwb.

1

Чтобы запустить его из Personal.xlsb затем Попробуйте

Public Sub Count_Sheets() 

    Debug.Print "You Have " & Application.Sheets.count & " Sheets " ' Immediate Window 
    MsgBox "You Have " & Application.Sheets.count & " Sheets " 

End Sub 

Или используйте ActiveWorkbook.Sheets.count

Смежные вопросы