Макрос Excel с именем файла не работает в 64-разрядной версии Office 2016 - PullRequest
0 голосов
/ 11 октября 2018

У меня есть файл Excel, который был сделан с Office 2016 32-разрядной, и сегодня я получил обновление до Office 2016 64-разрядной версии.Теперь мои файлы с работающими макросами частично не работают.Я получаю следующее сообщение:

Ошибка компиляции: не удается найти проект или библиотеку

iFileName = ThisWorkbook.Path & "\CV_" & ['Filling form'!F7] & "_" & ['Filling form'!F9] & ".xls"

Excel 2016 64-разрядная версия не любит ['Filling form'!F7] и ['Filling form'!F9]

Каким он должен быть?

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Возможно, проблема в том, что вы использовали Ссылку на библиотеку объектов в 32-битном VBA, для которой сейчас требуется 64-битная ссылка на библиотеку объектов.

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

Сравните этот список в 64-битном со списком 32-битных ссылок.И проверьте, есть ли отсутствующая ссылка.

enter image description here

Возможно, что не существует 64-битной версии вашего 32Битовая библиотека объектов.
В этом случае ваш проект несовместим с 64-битным Office, и невозможно преобразовать ваш проект в 64-битный Office без замены этой части альтернативным решением.

0 голосов
/ 11 октября 2018

Возможно, справочная библиотека, которую вы использовали в 32-разрядной версии, не существует в 64-разрядной версии.В окне VBA перейдите в «Инструменты» -> «Ссылки» и проверьте, отсутствует ли какая-либо библиотека:

enter image description here

Я думаю, что лучший способчтобы увидеть, чего не хватает, нужно сравнить лист Excel в 32-битной и 64-битной версиях Excel.

0 голосов
/ 11 октября 2018

Должен сказать, что я никогда не использовал эту форму ссылок в VBA - не знал, что вы также можете добавить ссылку на лист.

Попробуйте:

Sub Test()

    Dim wrkSht As Worksheet
    Dim iFileName As String

    Set wrkSht = ThisWorkbook.Worksheets("Filling form")
    iFileName = ThisWorkbook.Path & "\CV_" & wrkSht.Range("F7") & "_" & wrkSht.Range("F9") & ".xls"

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...