Следующий фрагмент кода работает в Excel до 2010:Excel VBA WorksheetFunction.CountA - не работает обновление пост в Office 2010
myRange = Range("A:A")
NumRows = Application.CountA(myRange)
Есть 38 ячейки, содержащие текст/значения в столбце A. Если код запускается в Excel 2007, NumRows правильно оценивает до 38, однако он (ошибочно) оценивается до 65 536 в Excel 2010.
Ввод функции ввода в ячейку CountA
ОК в обеих версиях.
Похожие нити question 16696891, но не было никакого ответа, и предложения были, я думаю, красные селедки ...
Любые идеи?
Hi Спасибо оба. Извините, должно было быть ясно - диапазон задается с помощью ключевого слова Set. На самом деле вам не нужен '.WorksheetFunction', на самом деле' Application.CountA' должен работать сам по себе. На рассматриваемом ПК 'Application.WorksheetFunction.CountA (Range (« A: A »)) показывает 65536, хотя только 38 ячеек содержат что-либо. Я не могу воспроизвести на своем столе. Я думал, что это может быть какая-то проблема с обновлением от одной версии офиса до другой. «Новый» ПК имеет Office 2010 в Windows 7 и был обновлен с Office 2007 в Windows 2003. –
Это может быть проблема с конкретной электронной таблицей. Попробуйте выбрать все «пустые» ячейки, удалить их и сохранить. Если это не приведет к ожидаемому результату «38», я в тупике. –