转换硬编码的 Word 书目列表

转换硬编码的 Word 书目列表

我有相当大的 word 文档,大约 250 页。未使用 Word 引用/引文。文档中的引用都是简单的文本:

Tarptautinės 自杀预防协会(英语:International Association for Suicide Prevention (IASP))建议 [18, 36, 202]。更重要的是,自杀预防专科医生在接受特定自杀预防专科医生的治疗时,会考虑他们的特殊情况 [19, 176, 177]。

参考书目列表在文档末尾手动输入。

  1. Abbas MAF、Abu Zaid LZ、Hussaein M. 沙特阿拉伯国王法赫德医疗城护理人员的焦虑和抑郁症状况。AIMS 医学科学 2015;2(4): 303–309。
  2. Ahmed-Little Y.轮班工作对初级医生的影响。BMJ 2007;334:777–778。
  3. Ahola K、Honkonen T、Pirkola S、Isometsa E、Kalimo R、Nykyri E 等。酒精依赖与芬兰劳动人口倦怠的关系//作者。期刊汇编。成瘾研究学会 2006;11:1438 – 1443。
  4. Ajzen I. 自然与操作态度。《心理学年鉴》2001;52:27-58。

...

250.

除了逐一输入之外,还有其他方法来创建适当的参考书目列表吗?

答案1

最后写了 VB 脚本

Sub ChangeText()


    Dim cDoc As Word.Document
    Dim cRng As Word.Range
    Set cDoc = ActiveDocument
    Set cRng = cDoc.Content
    cRng.Find.ClearFormatting

    'Dim dic As Dictionary
    'Set dic = New Dictionary

    Dim c As Object
    Set c = CreateObject("Scripting.Dictionary")
    c.Add "x1", "1"
    c.Add "x2", "62"
    c.Add "x3", "2"

With cRng.Find
    .Forward = True
    .Text = "["
    .Wrap = wdFindStop
    .Execute
    Do While .Found

        cRng.Collapse Word.WdCollapseDirection.wdCollapseEnd
        cRng.MoveEndUntil Cset:="]", Count:=Word.wdForward

        Dim TextStr As String
        Dim Result() As String
        TextStr = cRng.FormattedText.Text
        Result() = Split(TextStr, ",")
        For i = LBound(Result()) To UBound(Result())
                Dim temp As String
                temp = CStr(LTrim(Result(i)))
                Result(i) = c(temp)
        Next i
        Debug.Print "before: " & cRng.FormattedText.Text

        cRng.FormattedText.Text = Join(Result, ", ")
        Debug.Print "after:" & cRng.FormattedText.Text
        cRng.Collapse Word.WdCollapseDirection.wdCollapseEnd
        .Execute
    Loop
End With        
End Sub

相关内容