来自我在英文博客撰写的一篇文章:
Dimension.FormattedText中的有些选项是文件路径。而有时可能这个路径里含有单引号,这在Windows文件命名规则里是合理的。但如若直接使用,结果可能是样式没有解析,直接作为内容输出了,例如假定oPartDoc.FullFileName包含单引号。
Dim oFormattedText As String
oFormattedText = "<StyleOverride Font='AIGDT'>n</StyleOverride>" & _
"<Parameter ComponentIdentifier='" & _
oPartDoc.FullFileName & _
"' Name='" & _
ParameterName & _
"' Precision='0' ></Parameter>"
其实,在Dimension.FormattedText的字串中,还有其它几个特殊字符,例如大于,小于符号。API规定需要做如下处理:
即,这些字符都要替换成相应的code才能使用。因此,对于以上的例子,修改为:
' 先替换
If InStr(1, sPartFileName, "'") Then
sPartFileName = Replace(sPartFileName, "'", "'")
End If
Dim oFormattedText As String
oFormattedText = "<StyleOverride Font='AIGDT'>n</StyleOverride>" & _
"<Parameter ComponentIdentifier='" & _
sPartFileName & _
"' Name='" & _
ParameterName & _
"' Precision='0' ></Parameter>"