删除没有内容的数字项目符号

时间:2018-12-06 15:28:40

标签: vba ms-word

当我试图删除没有任何东西的项目符号时,我遇到了一个奇怪的问题。

为此,我开始尝试提出一个代码,宣布没有内容的项目符号编号。

我的问题:如何检查给定段落中没有内容。

当我使用以下代码行时:

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不在“”(空字符串)中而是在“(双引号)中求值。

这是调试的imagehere是我的测试文件。

我努力了解造成这种情况的原因,并且我更加努力地寻求解决方案。我试图做DocPara.Range.Text = chr(34)无济于事...

您是否有任何建议?

2 个答案:

答案 0 :(得分:1)

问题是空格。 首先让我们定义一个Strip函数以删除空白,这受python的strip的启发。

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

答案 1 :(得分:0)

好的,我只是更改了代码以检查:

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

相反...因此对于我而言,它可以正常工作。

编辑: 正如Uri所建议的,如果与Chr(13)(回车)相比,则初始代码有效!

谢谢大家,

马克西