VBA Excel 2007 макрос умирает в Excel 2002

Я только что попытался отправить рабочую книгу другу, у которого есть таблица с раскрывающимся списком. В Excel 2007 я использовал:

If Chart2.Shapes(2).ControlFormat.ListCount = "16" Then

Чтобы проверить размер списка, чтобы он не вводился снова (в результате получается очень длинный список, который повторяется). Эта строка хорошо работает в Excel 2007, но дает Object doesn't support this property or method. ошибка в Excel 2002.

В чем разница между работой с фигурами в 2002 и 2007 годах?

2 ответа

Решение

Хорошо, это закончилось тем, что мне понадобилось много времени, чтобы понять.

Excel 2007 считает формы по-другому, чем в 2002 году. Форма, на которую я пытался ссылаться в 2007 году (2) было сейчас (1) в 2002.

Итак, конечный результат был, конечно,

If Chart2.Shapes(1).ControlFormat.ListCount = "16" Then

Разница в том, что вы не можете использовать блестящие новые методы и коллекции, представленные за эти годы. К сожалению, MSDN не очень поможет вам в этой области. Лучше всего как-нибудь подобрать соответствующий файл справки и прочитать документацию для нужной версии. Вы можете найти все файлы справки 2002 года здесь.

Проблема, с которой вы сталкиваетесь, заключается в том, что свойство ListCount доступно только для чтения в 2002 году.

Другие вопросы по тегам