VBA Excel 2007 макрос умирает в Excel 2002 - PullRequest
1 голос
/ 13 мая 2010

Я только что попытался отправить рабочую книгу другу, у которого есть таблица с раскрывающимся списком. В 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 ]

2 голосов
/ 17 мая 2010

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

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

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

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

0 голосов
/ 14 мая 2010

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

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

...