Проблемы с пониманием того, как передать переменную в функцию - PullRequest
0 голосов
/ 16 июня 2020

Я просто пытаюсь найти книгу, начинающуюся с D и содержащую лист «Боб».

Это мой код, но он не любит wb.Name, когда я вызываю функцию. Что я должен туда положить, чтобы все заработало?

Sub View_Email()

'Select report workbook D*
    For Each wb In Application.Workbooks
        If wb1.Name Like "D*" And WorksheetExists("Bob", wb.Name) Then
            Ct = Ct + 1
            wb1.Activate
            Set WB_rep = ActiveWorkbook
            Exit For
        End If
    Next wb1
    If Ct = 0 Then
        MsgBox "Could not find D* file (report). Code will end."
        Exit Sub
    End If

'Copy Burn-Down chart from report


End Sub


Function WorksheetExists(shtName As String, Optional wb As Workbook) As Boolean
    Dim sht As Worksheet

    If wb Is Nothing Then Set wb = ThisWorkbook
    On Error Resume Next
    Set sht = wb.Sheets(shtName)
    On Error GoTo 0
    WorksheetExists = Not sht Is Nothing
End Function

1 Ответ

2 голосов
/ 16 июня 2020

Спасибо за вашу помощь. Следующий код сейчас работает:

Sub View_Email()

Dim wb As Workbook

'Select report workbook D*
    For Each wb In Application.Workbooks
        If wb.Name Like "D*" And WorksheetExists("Bob", wb) Then
            Ct = Ct + 1
            wb.Activate
            Set WB_rep = ActiveWorkbook
            Exit For
        End If
    Next wb
    If Ct = 0 Then
        MsgBox "Could not find D* file (report). Code will end."
        Exit Sub
    End If

'Copy Burn-Down chart from report


End Sub


Function WorksheetExists(shtName As String, Optional wb As Workbook) As Boolean
    Dim sht As Worksheet

    If wb Is Nothing Then Set wb = ThisWorkbook
    On Error Resume Next
    Set sht = wb.Sheets(shtName)
    On Error GoTo 0
    WorksheetExists = Not sht Is Nothing
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...