Есть ли сценарий, в котором нажатие Ctrl + G и выбор пробелов не выделяли бы пустые ячейки?

Я скопировал кучу таблиц из файла PDF в Excel. эти таблицы содержат пустые ячейки. Мне нужно написать код, который сможет распознавать и подсчитывать количество пустых ячеек в каждом столбце каждой таблицы (я сохраняю одну таблицу на лист). Я разместил следующий вопрос: Числовая функция, возвращающая true для пустой ячейки и думал, что у меня есть ответ, вычислив длину усеченного значения каждой ячейки, но оказалось, что это не решает ее. Функция длины возвращает значение 5 для этих пустых ячеек. и значение 5 для многих других ячеек, которые имеют значения.

Когда я нажимаю ctrl + G и выбираю пробелы, эти пустые ячейки не выделяются. Выделяются только ячейки в полностью пустых столбцах.

Похоже, у меня возникла проблема со ссылкой на листы. Команда isnumber возвращает false, так что это решает мою проблему. но использование len(clean()) по-прежнему возвращает число больше нуля. Пока я могу обойтись функцией isnumber. но мне было бы интересно узнать, какое значение хранится в этих ячейках.


person user2681358    schedule 15.08.2013    source источник
comment
Вы можете загрузить одну таблицу из своей книги? Если число, возвращенное из Len(cell), равно 5, это означает, что в этой ячейке определенно есть 5 символов. Если они не видны, цвет шрифта может быть установлен на белый. Основываясь на вашем другом вопросе, я не могу придумать никакой другой подходящей альтернативы. Вы можете добавить точку останова при переборе ячеек в режиме отладки и проверить значение каждой ячейки, используя cell.value,cell.value2,cell.text   -  person    schedule 15.08.2013
comment
когда я нажимаю на ячейку, панель функций пуста. и когда я отлаживаю, чтобы проверить значение ячейки MsgBox cell.value, оно также пусто.   -  person user2681358    schedule 18.08.2013
comment
Clean удаляет только символы с кодом ascii ‹ 32. Существуют и другие непечатаемые символы, например, неразрывный пробел (код 160). Очистка сама по себе не удалит их.   -  person chris neilsen    schedule 18.08.2013
comment
Я вижу, что делает так, но все же, как мне идентифицировать эти пустые места? код функции (cell#) возвращает 32 как для пустых, так и для непустых ячеек   -  person user2681358    schedule 18.08.2013


Ответы (1)


Мое лучшее предположение здесь состоит в том, что ячейки на самом деле содержат непечатаемые символы, такие как возврат каретки.

Вы можете легко проверить это, используя следующую формулу: =LEN(CLEAN(A1)), которая должна возвращать значение, отличное от =LEN(A1).

person markblandford    schedule 15.08.2013