|
xwdys 发表于 2015-3-21 18:36
经测试,不能省略.
比如域代码 { =42}
将42设为隐藏文字, 注释掉 .Fields.Update ,并设置 .TextRetrieva ...
之前没有认真测试,现在仍然改回来,仅仅做了剪贴板的后期绑定,去掉了文档内的插入文本和剪切操作提高操作效率,个人测试效率大概提高了3倍。
测试之后理解一下红色三行代码的作用:
1.第一行:Update方法,如果手动对域代码做过修改的话,如果更新将无法得到正确域代码
2.第二行:提取域代码
3.第三行:提取隐藏文字中的域代码
Sub GetFiledsCodes_MeThee()
Application.ScreenUpdating = False
Dim myCodes As String
Dim MyData As Object
Set MyData = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
With Selection.Range
If .Fields.Count = 0 Then
MsgBox "您所选的内容中没有域代码!", vbInformation
Exit Sub
Else
.Fields.Update
.TextRetrievalMode.IncludeFieldCodes = True
.TextRetrievalMode.IncludeHiddenText = True
myCodes = .Text
myCodes = VBA.Replace(myCodes, Chr(19), "{")
myCodes = VBA.Replace(myCodes, Chr(21), "}")
MyData.SetText "域代码:" & myCodes
MyData.PutInClipboard
End If
End With
Application.ScreenUpdating = True
End Sub
|
|