Вопрос
Как получить доступ к общедоступной константе, определенной в другой книге Excel?
Настройка
Workbook.xls
Мой код VBA выполняется в текущей книге Excel под названием «MyWorkbook.xls».В нем есть некоторый код VBA, который читает имя файла - в данном случае «OtherWorkbook.xls» - из ячейки «A1». Затем код должен прочитать константу, определенную в этой другой книге, и записать ее в ячейку «A2».Вот как выглядит мой код:
Sub GetValueFromOtherWorkbook()
otherWorkbook = Range("A1").Value ' Value = "OtherWorkbook.xls"
Dim returnedValue As String
' Idea 1: Doesn't work
Set returnedValue = OtherWorkbook.xls!Module1.MY_CONSTANT
' Idea 2: Doesn't work either
Set returnedValue = Application.Run(otherWorkbook & "!Module1.MY_CONSTANT")
Range("A2").Value = returnedValue ' MY_CONSTANT = "testValue"
End Sub
OtherWorkbook.xls
Вторая книга Excel называется "OtherWorkbook.xls", как упоминалось выше.модуль VBA с именем Module1. Module1 определяет открытую константу. Код выглядит следующим образом:
Public Const MY_CONSTANT As String = "testValue"
Проблема
Код из MyWorkbook.xls не запускается,он возвращает следующую ошибку
Ошибка времени выполнения '424'
Требуется объект
Я не совсем знаю, что с ним делать, даже после прочтения справочной документации.В другом контексте мне удалось вызвать подпрограмму в другой книге с таким кодом:
otherWorkbookName = "OtherWorkbook.xls"
Application.Run (otherWorkbookName & "!Module1.SomeRoutine")
Итак, вызов подпрограммы работает, но доступ к общедоступной константе не дает.
Есть идеи, чтоЯ мог бы попробовать дальше?