检查Word表的单元格是否为空-包含“标记”的空单元格

时间:2018-09-27 12:48:49

标签: vba ms-word word-vba

此Word文件具有一个包含2列的巨型表。我必须像这样声明:

If theCellIsEmpty, then
    Fill it
End if

问题是,当我通过以下方式获取单元格的内容时:

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

它没有得到我所期望的"",但是它包含一种点,因此读取的文本永远不会为空。

这是我要测试的点:Here is the dot I'd like to test

此外,我不知道该点可能是什么或它来自何处。我试图在字符表中找不到它。

有人可以解释一下如何测试“行尾字符”或行的空吗?我不想检查单元格是否只有1个字符,就像该字符是有目的的放置在这里一样,我不想删除它。

此外,每一行的末尾都有这个点...

是什么?如何使用/避免使用它?

2 个答案:

答案 0 :(得分:0)

感谢您的所有帮助,感谢Freeman,我可能会有一个简单的解决方案,主要是:-)

我用字符的ascii号检查了它的含义(通过asc(xxxx)函数),它恰好是一个具有ascii号“ 13”的“回车符”

因此,所以我只需要检查单元格的内容是否给出了ascii数字13并完成。 (“ asc(xxxxxx)”仅给出文本链第一个字符的ascii号:))

当然,如果单元格以回车开头并且后面有文本,那将不是很好,因此也检查单元格中包含的文本是否只有2个字符长是一件好事(此“回车”显然是2个字符长...很奇怪...):)

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

答案 1 :(得分:0)

您所需要的只是以下内容:

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