我有一个场景,我将有许多Word文档,其标题包含括号中的文本,我想提取和操作。标题栏信息(与实际文档名称不同)看起来像这样:
随机长度文本(最后名称,第一名称MI)随机长度文本
我已尝试过Left,Right和Mid功能,但我得到的结果好坏参半。 Mid函数工作的唯一方法是,如果我确定文本的确切位置和长度,但我的结果不一致。我似乎无法磨练帕滕之间的文字 - 不多也不少。
到目前为止,我唯一的成功是使用了两个独立的宏,它们可以完美地使右括号左侧的文本或左括号右侧的文本。如何一步完成所有文本?
这是我的两个"工作"宏,FWIW:
Sub a1FullNameDiscardAfterRightParen()
'Discard text after right paren (including paren)
Dim strFullName As String
Dim BRP As Long 'ARP=after right paren
strFullName = ActiveDocument.ActiveWindow.Caption
ARP = InStr(strFullName, Chr(41))
If ARP > 0 Then
strFullName = Left(strFullName, ARP - 1)
End If
Selection.TypeText strFullName
End Sub
--------------------------------------------------------------------------------------
Sub a2FullNameDiscardBeforeLeftParen()
'Discard text before left paren (including paren)
Dim strFullName As String
Dim BLP As Long 'BLP=before left paren
strFullName = ActiveDocument.ActiveWindow.Caption
BLP = InStr(strFullName, Chr(41))
If BLP > 0 Then
strFullName = Right(strFullName, BLP - 1)
End If
Selection.TypeText strFullName
End Sub
答案 0 :(得分:0)
无论如何,这是一个提取括号之间所有内容的代码。你想使用mid()函数。
Sub ExtractTextBetweenParenthesis()
Dim MyText As String
Dim OpenPosition As Integer
Dim closeposition As Integer
OpenPosition = InStr(ActiveDocument.ActiveWindow.Caption, "(")
closeposition = InStr(ActiveDocument.ActiveWindow.Caption, ")")
MyText = Mid(ActiveDocument.ActiveWindow.Caption, OpenPosition + 1, closeposition - OpenPosition - 1)
Selection.TypeText MyText
End Sub