ms word - 使用 VBA 创建字段时的额外空格:{ EQ.. } 而不是 {EQ..}



我使用VBA在Word中创建一个重叠字符:

a = "x"
b = "."
Selection.Fields.Add Range:=Selection.Range, Text:= _
        "EQ o (" & a & "," & b & ")", PreserveFormatting:=False

输出为

{ EQ o (x,.) }

产生:http://img843.imageshack.us/img843/3783/18492133.png。从灰色框可以看出,字符是要宽的。通过将手动将字段更改为http://img838.imageshack.us/img838/1723/69344761.png

{ EQ o (x,.)}    or   {EQ o (x,.)}

但是,如何直接在 VBA 中实现这一点呢?

我的假设是您需要删除最终偏执和大括号之间的尾随空格。

暗淡 x 作为字符串

暗淡 y 作为字符串

x

= "{ EQ \o (x,.) }"

y = Replace(x, " }", "}") '注意查找表达式的空间,例如 ' }'"也可以把") }"替换为")}"

y 成为我认为你想要的输出

您可以使用上面显示的替换函数来完成此任务。

你的代码会变成

a = "x"
b = "."
Selection.Fields.Add Range:=Selection.Range, Text:= _
"EQ o (" & a & "," & b & ")", PreserveFormatting:=False
Selection.Range.Text = Replace(Selection.Range.Text, ") }", ")}")

此代码为字段均衡器分配正确的值

 ActiveDocument.Fields.Item(numderfield).Code.Text = "EQ o (" & a & "," & b & ")"