计算MS Word中的选定行

时间:2018-01-26 07:28:57

标签: count ms-word word-vba

我想计算MS word文档中所选文本的行数。我想出了代码:

Sub Count_Lines()
ActiveDocument.ComputeStatistics (wdStatisticLines)
MsgBox ("The document contains " & NumLines & " Lines")
End sub

但它实际上算了整个文档的行。

任何人都可以帮忙,找到只能计算选定行数的代码吗?

2 个答案:

答案 0 :(得分:1)

只需使用Selection.Range对象而不是ActiveDocument

Sub Count_Lines()
    MsgBox ("The selection contains " & Selection.Range.ComputeStatistics(wdStatisticLines) & " Lines")
End Sub

答案 1 :(得分:1)

您的代码打算在消息框中显示NumLines的值。但是,没有为该变量赋值。实际上变量本身也没有被声明。下面的代码填补了这两个缺点,然后工作得很好。但是,它会计算文档中的所有行。如果您只是想要选择的行使用下面提供的解决方案。

Option Explicit

Sub Count_Lines()

    Dim NumLines As Long

    NumLines = ActiveDocument.ComputeStatistics(wdStatisticLines)
    MsgBox ("The document contains " & NumLines & " Lines")
End Sub

NB。他们说,Option Explicit"强迫"你要声明迫使反应抵抗的变量。比较那些坚持你在道路右侧行驶的交警的力量。使用Option Explicit不会延长你的生命,但它会大大减少你花在追逐愚蠢错误上的时间,因为你太骄傲了,不能让你的计算机指出它们。 Option Explicit是一个工具,它为我提供了一个指向你在这里寻求帮助的问题根源的直接指针。