首页 > 解决方案 > 在 Word 中自动执行 LEN() 函数

问题描述

再会,

我正在尝试在 Word 中复制 Excel 中的LEN()函数,并使其尽可能自动化,就像程序允许的那样。

我设法创建了一个简短的模块,它计算某个销售的字符数,然后将结果发布到右侧的单元格:

Sub NumChars()
With Selection.Paragraphs(1)
    .Next.Range.Text = .Range.Characters.Count
End With
End Sub

这是结果:

在此处输入图像描述

现在,不便之处在于,如果我有多行,那么我必须为他们每一个人都这样做,因此问题是,如何修改 VBA,以便它重复该功能直到到达最后一行? 例如,我曾经按下第一行的“运行”按钮,它(重新)计算该列中每个单元格的所有字符数,直到它到达最后一行。

每一个帮助将不胜感激。

标签: vbams-wordcharacter

解决方案


您的想法是正确的,但是您需要将其与遍历表格的每一行结合起来,如本例所示:

Option Explicit

Sub test()
    Dim mydoc As Document
    Set mydoc = ThisDocument
    
    Dim tbl As Table
    For Each tbl In mydoc.Tables
        CountMyChars tbl
    Next tbl
End Sub

Sub CountMyChars(ByRef tbl As Table)
    Const CHAR_COL As Long = 2
    Const COUNT_COL As Long = 3
    
    Dim row As Long
    Dim col As Long
    For row = 1 To tbl.Rows.Count
        '--- assumes the characters to count are in Column 2
        '    and the cell to hold the count is Column 3
        tbl.Cell(row, COUNT_COL).Range.Text = tbl.Cell(row, CHAR_COL).Range.Characters.Count
    Next row
End Sub

推荐阅读