我正在尝试创建一个VBA宏,将确定在文本引用和出口到另一个页面。到目前为止,我已经取得了一些适度的成功,但只能让它与一个表达式,找到一些引用。我需要它来确定所有的引用,无论是那些在括号内和他们。例如在文本引用
一位作者(Smith,2015)......Smith(2015)认为......
两位作者(Smith和Jones,2015)...根据Smith和Jones(2015)...
三位作者(Smith、Jones和Brown,2015)...... Smith、Jones和Brown(2015)的研究表明......
4位或更多作者(Smith等人,2015)Smith等人(2015)证明......
目前我有这个代码:
Sub ExtractRefsFromSelection()
MsgBox ("This macro extracts references from selected text.")
Dim SearchRange As Range, DestinationDoc$, SourceDoc$
DestinationDoc$ = "Refs.doc"
SourceDoc$ = ActiveDocument.Name
Documents.Add DocumentType:=wdNewBlankDocument
ActiveDocument.SaveAs DestinationDoc$, wdFormatDocument
Documents(SourceDoc$).Activate
Set SearchRange = ActiveDocument.Range
With SearchRange.Find
.ClearFormatting
.Text = "\([!\)]@[0-9]{4}\)"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
While .Execute
Documents(DestinationDoc$).Range.Text = Documents(DestinationDoc$).Range.Text + SearchRange.Text
Wend
End With
End Sub
1条答案
按热度按时间xzabzqsa1#
使用正则表达式库--〉将“Microsoft VBScript Regular Expressions 5.5”添加到您的项目中会更容易、更高效。然后您可以使用以下代码: