Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Взаимодействие Excel 2007- 2010 c 97-2003

Автор _Sergey_, 26.02.2016, 13:17:23

« назад - далее »

_Sergey_

Книга с макросом работает и создана в 2010 версии. На сетевом диске находится другая в версии 97-2003 куда должны пойти данные. Когда разрабатывал макрос сделал себе копию второй книги из сети и сохранил как Excel 20010, ну и работал себе с ними. Отладил пришло время запускать в общее пользование где используют Excel 97-2003. Беда в следующем строка отвечающая за подсчет заполненных строк стала ругаться ошибка 1004.
Shtancev = Workbooks(Baza).Sheets("прямоугольные").Cells(Rows.Count, 1).End(xlUp).Row
В процессе разработки такой беды не наблюдалось. Так это версии между собой дружить не хотят или я чего не знаю?
Если этой информации мало для ответа, добавлю что потребуется.

Дмитрий Щербаков(The_Prist)

#1
Цитата: _Sergey_ от 26.02.2016, 13:17:23или я чего не знаю?
Rows.Count - по умолчанию будет относится к активной книге, если записано в стандартном модуле. Например код в стандартном модуле листа и должен работать с книгой формата 97-2003. В этих книгах всего 65536 строк. Если в момент выполнения приведенной строки активна книга формата 2007 и выше - то Rows.Count вернет 1048576. И т.к. в книге, в которой пытаетесь вычислить последнюю строку всего 65536 строк - получаете ошибку. Поэтому имеет смысл указывать явно откуда считывать эти Rows.Count:
Shtancev = Workbooks(Baza).Sheets("прямоугольные").Cells(Workbooks(Baza).Sheets("прямоугольные").Rows.Count, 1).End(xlUp).Row
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

_Sergey_

Все так и оказалось.
Спасибо

Яндекс.Метрика Рейтинг@Mail.ru