Проверка, пуста ли ячейка таблицы Word - Пустая ячейка, содержащая «маркер» - PullRequest
0 голосов
/ 27 сентября 2018

Этот файл Word имеет гигантскую таблицу с 2 столбцами.Я должен сделать заявление вроде:

If theCellIsEmpty, then
    Fill it
End if

Дело в том, что когда я получаю содержимое ячейки через:

FirstCellText = ActiveDocument.Tables(Tbl).Cell(Rw, 1).Range.Text

Оно не получает "" IЯ ожидаю, но он содержит своего рода точку, поэтому чтение текста никогда не бывает пустым.

Вот точка, которую я хотел бы проверить: Here is the dot I'd like to test

Более того, японятия не имею, что это за точка и откуда она взялась.Я безуспешно пытался найти его в таблице символов.

Может кто-нибудь объяснить мне, как проверить наличие этого "символа конца строки" или пустоту строки?Я не хочу проверять, имеет ли ячейка только 1 символ, как будто этот символ помещен туда с определенной целью, я не хочу его удалять.

Кроме того, каждая точка имеет эту точку вконец ...

Что это?Как я могу использовать / избежать этого?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Все, что вам нужно, это что-то вроде:

Dim Cll As Cell
For Each Cll In ActiveDocument.Tables(1)
  With Cll.Range
    'if all it has is the end-of-cell marker, it's empty, so fill it
    If Len(.Text) = 2 Then .Text = "Filler Text"
  End With
Next
0 голосов
/ 27 сентября 2018

Спасибо за вашу помощь, у меня может быть простое решение, благодаря Freeman, в основном: -)

Я взял ascii номер символа, чтобы проверить, что это такое (через функцию asc (xxxx))и это «возврат каретки» с номером ascii «13»

. Поэтому мне просто нужно проверить, содержит ли содержимое ячейки номер 13 ascii, и все готово.(«asc (xxxxxx)» дает номер ascii только первого символа текстовой цепочки :))

Конечно, если ячейка начинается с возврата каретки и после нее есть текст, она выиграет 'было бы неплохо, поэтому проверка также, если текст, содержащийся в ячейке, имеет длину всего 2 символа, будет хорошей вещью (этот «возврат каретки», по-видимому, имеет длину 2 символа ... странно ...):)

If  Asc(FirstCellText) = 13 and len(FirstCellText) = 2 Then
...