тип несоответствия при вытягивании.значение из рабочей книги


Я пытаюсь настроить панель мониторинга, которую я только что создал, чтобы автоматически(ну, как только она снова откроется) обновляться по мере внесения изменений в будущем. Я разработал следующий способ сделать это, но я продолжаю получать ошибку "несоответствие типа" в строке, помеченной **. Я чувствую, что упускаю что-то довольно очевидное здесь, но ради жизни, я не могу понять это. Есть идеи?

Private Sub Workbook_Open()
Dim UpDateBook As Workbook
Dim CurrVer As String
Dim AdminFile As String
Dim AdminFolder As String
Dim MyPath As String

''Change the next two according to where the admin file will be located.
AdminFile = "\dallfileDatabasesReportsDashboardDashboard Update.xlsx"
AdminFolder = "\dallfileDatabasesReportsDashboard"

MyPath = ThisWorkbook.Path
MyPath = MyPath & ""

Application.ScreenUpdating = False

Set UpDateBook = Workbooks.Open(AdminFile, , True)

**CurrVer = Workbooks(UpDateBook).Sheets("Version_Log").Range("A5000").End(xlUp).Value
CurrVer = CurrVer & ".xlsm"

If ThisWorkbook.Name <> CurrVer Then
    MsgBox ("There is a new update for your file available. It will be loaded as soon as you press OK")
    Workbooks.Open Filename:=AdminFolder & CurrVer
    Application.EnableEvents = False
    Workbooks(CurrVer).SaveAs Filename:=MyPath & CurrVer, FileFormat:=xlNormal
    Application.EnableEvents = True
    With ThisWorkbook
        .Saved = True
        .ChangeFileAccess Mode:=xlReadOnly
        Kill pathname:=.FullName
        .Close savechanges:=False
    End With
End If

Application.ScreenUpdating = True

End Sub
2 2

2 ответа:

Я думаю, это потому, что вы неправильно используете объект workbook.

Вы устанавливаете рабочую книгу здесь..

Set UpDateBook = Workbooks.Open(AdminFile, , True)

И тогда вы должны использовать его вот так.

CurrVer = UpDateBook.Sheets("Version_Log").Range("A5000").End(xlUp).Value

Просто вопрос синтаксиса. Как только у вас есть:

Set UpDateBook = Workbooks.Open(AdminFile, , True)

Вы должны использовать его как:

CurrVer = UpDateBook.Sheets("Version_Log").Range("A5000").End(xlUp).Value