Команды VBA, несовместимые между Excel 2010 и 2013 (OLEObject)? - PullRequest
1 голос
/ 13 февраля 2020

У меня есть файл макроса Excel для нескольких пользователей, все с версией Excel 2010. Мы пытаемся запустить его с некоторыми людьми в Excel 2013, но макрос, кажется, блокируется каждый раз, когда нам нужно вызвать некоторые объекты OLEObject (в основном кнопки и флажки) со следующим сообщением об ошибке:

Run-time error '1004':
Unable to get the Object property of the OLEObject class

Это три примера кода, которые вызывают ошибку:

1:

If Not (ThisWorkbook.Sheets("Main page").OLEObjects("CheckBox2").Object.Value) Then

2:

If ThisWorkbook.Sheets("Main page").OLEObjects("OptionButton3").Object.Value Then

3:

variableName = mPage.OLEObjects("OptionButton5").Object.Value

I'm Я не являюсь экспертом в VBA, но я сам написал часть макроса, поэтому я могу изменить макрос, если в новейших версиях кнопка «Доступ к объектам» просто необходима другим способом.

1 Ответ

1 голос
/ 13 февраля 2020

Проверьте объект Shapes . Возможно, у вас есть фигуры и нет OLEObjects.

Debug.Print ThisWorkbook.Sheets("Main page").Shapes("Check Box 2").OLEFormat.Object.Value

Вы можете проверить это с помощью

Debug.Print ThisWorkbook.Sheets("Main page").Shapes.Count
Debug.Print ThisWorkbook.Sheets("Main page").OLEObjects.Count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...