【发布时间】:2013-09-20 17:59:46
【问题描述】:
目标: 在 Word 中使用 VBA,我希望能够将文本键入或粘贴到 Word 文档中,然后确保每行单词以一定数量的字符换行(通常为 50,尽管这可能会改变)。我宁愿不使用文档顶部的标尺手动调整,尤其是当字体不是等宽时!
尝试失败: 我尝试使用以下内容,导致错误“值超出范围”:
Public Sub setWordsPerLine()
ActiveDocument.PageSetup.CharsLine = 50
End Sub
我还尝试在段落中每 50 个字符插入一个返回字符。但是,这会导致类型不匹配错误:
For Each pg In ActiveDocument.Paragraphs
b = pg.Range.Characters.Count
c = 50
If b > c Then
For atch = c To pg.Range.Characters.Count Step c
ActiveDocument.Range(pg.Range.Characters(atch)).InsertBefore (Chr(13))
Next
End If
Next
需要帮助:
我应该使用其他方法、属性或函数来执行此操作吗? Paragraphs.RightIndent = x 是基于点,而不是字符。
【问题讨论】:
-
还需要帮助吗?如果第 50 个字符在任何单词的中间怎么办——这个单词应该被拆分还是应该在这个单词之后开始新行?
-
@KazJaw 是的,还在寻求这方面的帮助,谢谢!如果在单词中间,则应在该单词之前开始新行。单词不应拆分,但总行长也不应超过 50 个字符。