Удалить номер маркера, который не имеет содержимого - PullRequest
0 голосов
/ 06 декабря 2018

Я столкнулся со странной проблемой при попытке удалить пули, в которых ничего нет.

Чтобы достичь этого, я начал пытаться придумать код, который объявляет номер маркера, у которого нет содержимого.

Моя проблема: как проверить отсутствие содержимого в данном абзаце.

Когда я использую следующие строки кода:

Sub Announcer()
Dim DocPara As Paragraph

For Each DocPara In ActiveDocument.Paragraphs

  If DocPara.Range.ListFormat.ListType = wdListSimpleNumbering Then
  If DocPara.Range.Text = "" Then

  MsgBox DocPara.Range.ListFormat.ListString

  End If
  End If

Next

Он не выдает сообщение msgbox, потому что DocPara.Range.Text оценивается не в "" (пустая строка), а в"(двойные кавычки).

Вот изображение отладки, а здесь - мой тестовый файл.

Я изо всех сил пытаюсь понятьпричина для этого, и я изо всех сил пытаюсь найти решение. Я пытался сделать DocPara.Range.Text = chr (34) безрезультатно ...

У вас случайно есть какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Проблема в белых пространствах.Сначала давайте определим функцию Strip для удаления пробелов, вдохновленную полосой Python .

Function Strip(ByVal s As String) As String
    Strip = Trim(Replace(Replace(s, Chr(13), " "), Chr(10), " "))
End Function

Затем мы заменим

If DocPara.Range.Text = "" Then

на

If Strip(DocPara.Range.Text) = "" Then
0 голосов
/ 06 декабря 2018

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

If Len(DocPara.Range.Text) = 1 then

вместо ... так что для моих целей теперь это работает.

РЕДАКТИРОВАТЬ: Как предположил Ури,исходный код работает по сравнению с Chr (13) (возврат каретки)!

Спасибо всем,

Макси

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...