ВопросКак получить доступ к константе, определенной в другой книге Excel?
Как получить доступ к общественной константу, определенную в другой книге 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")
Так что, называя рутинный работает, но доступ к открытому постоянная не.
Любые идеи, что я мог бы попробовать дальше?
Отличный ответ, спасибо. Да, я также подумал о том, чтобы написать метод обертки в качестве последнего средства. Я думаю, что я пойду с этим обходным решением, поэтому мне не нужно вводить никаких новых ссылок. – Lernkurve