【发布时间】:2024-01-09 20:49:01
【问题描述】:
在 MS-Word 中,我有这样的文字:hif.imp. ינעימשת od שמע
当我双击希伯来语单词时,该范围被选中,单词后有空格。我想创建宏,这将减少空白字符。
Dim r1 As Range
Dim str1 As String
Set r1 = Selection.Range
r1.SetRange Start:=0, End:=Len(Trim(r1.Text))
但是当我运行它时,没有任何反应,选择仍然包括空间。如何解决这个问题?
【问题讨论】:
-
尝试使用
selection.MoveEnd wdCharacter, -1- 如果不起作用,请尝试-2等 -
r1.SetRange Start:=0, End:=Len(Trim(r1.Text))设置一个指向与Selection相同的位置但独立于它的范围。它不会改变选择的内容。您需要添加r1.Select才能做到这一点。 -
@TimothyRylatt:嗯,但是Start不能为0,必须是选区的起始位置。
r1.SetRange Start:=r1.Start, End:=Len(Trim(r1.Text)) r1.Select仍然无法正常工作。是的,现在可以选择了,但是起始位置不对。另外,所选字符的计数似乎错误。 -
试着想想你在做什么。
SetRange的Start和End参数是文档中的位置,而不是您的范围,即位置 0 是文档的开头。因此,当您设置结束时,它需要相对于开始进行设置,即开始 + 文本长度。您还需要注意Trim将删除字符串两端的空格,因此也会影响您的起始位置。 -
我明白了!
r1.SetRange Start:=a, End:=a + b谢谢