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

时间:2011-04-03 10:35:38

标签: ms-word field word-vba

我使用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中直接实现?

2 个答案:

答案 0 :(得分:0)

我的假设是你需要删除最后一个paranthesis和大括号之间的尾随空格。

Dim x As String

Dim y As String

x =“{EQ \ o(x,。)}”

y =替换(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, ") }", ")}")

答案 1 :(得分:0)

此代码将正确的值分配给字段EQ

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