Excel 2016 VBA — проблемы при обновлении с Excel 2013

#excel #vba

#excel #vba

Вопрос:

Я разработал несколько пользовательских форм и макросов для проекта в Excel 2013, но когда я пытаюсь протестировать их в Excel 2016, я получаю множество ошибок в базовых функциях VBA.

Например, я получаю ошибку «Объект не поддерживает это свойство или метод» из следующего кода:

 Private Sub ShowImpact()
FormImpact.Show
End Sub
  

Другой пример, следующий код выдает ошибку «Не удается найти проект или библиотеку» в ссылке на таблицу [RIMS_tbl]. Это именованная таблица в документе:

 With FormImpact.cboIndustry
    .ColumnCount = 11
    .ColumnWidths = "0;50;0;0;0;0;0;0;0;0;0"
    .RowSource = "=RIMS!" amp; [RIMS_tbl].Address
    .BoundColumn = 1
    .TextColumn = 2
End With
  

В качестве другого примера я получаю то же сообщение об ошибке при методе «Формат» в следующем коде:

 Private Sub txtConLand_AfterUpdate()
txtConLand = Format(txtConLand.Value, "#,##0")
End Sub
  

Наконец, у меня есть ярлык, который я использую в качестве фона в форме, который отлично работает в Excel 2013, но по какой-то причине он охватывает все другие элементы управления в 2016, и я не могу отправить его обратно.

Я действительно надеюсь, что в 2016 году есть какая-то настройка, которая исправит все эти проблемы, потому что я не могу понять, почему так много вещей будет нарушено между этими двумя версиями. Спасибо за вашу помощь!

Комментарии:

1. Какие-либо «отсутствующие» ссылки в вашем проекте VB?

2. Как говорит @TimWilliams, проверьте свои ссылки. Щелкните в меню инструменты , а затем ссылки . Это должно быть то же самое, и ни один из них не должен быть помечен как ОТСУТСТВУЮЩИЙ

3. Да, отсутствует ссылка на «Библиотеку типов ATLEntityPicker 1.0». Я снял этот флажок в шаблоне Excel, и, похоже, это устранило большинство проблем! Спасибо вам обоим @TimWilliams и Стефану. У меня все еще возникает проблема с фоновой меткой, закрывающей остальную часть пользовательской формы. Если у вас есть какие-либо предложения по этому поводу, я был бы признателен.

Ответ №1:

Как упоминалось в комментариях выше, решение этой проблемы заключалось в устранении недостающих ссылок между разными номерами версий. В интерфейсе Visual Basic перейдите в меню Инструменты-> Ссылки. Проверьте отсутствие ссылок во всех поддерживаемых версиях. Спасибо @TimWilliams и @Stefan за решение этой проблемы.

Я так и не понял, как решить проблему z-порядка для фоновой метки. Даже установка v-порядка для этой метки программно не сработала. Но я придумал обходной путь. Сначала я создал небольшой белый растровый файл. Затем в настройках страницы я установил фоновое изображение в качестве растрового файла. Затем я установил свойство «PictureSizeMode» «fmPictureSizeModeStretch», которое растягивало растровое изображение, чтобы оно соответствовало всей странице. Наконец, я добавил рамку вокруг всей формы.

Ответ №2:

У меня возникла та же проблема при переносе Excel с поддержкой VBA с Excel 2010 на 2016. Отмена выбора библиотеки типов ATLEntityPicker 1.0 из списка литературы решила проблему.