word VBA——用尾注内容替换文中相应引用位置的尾注编号

作为一个公司里的小渣渣,经常会接到各种奇怪的活计,比如说:让我将一个几百页的文档中的全部尾注上的文字,拷贝到文中引用的相应位置,替换掉相应的尾注编号。文档几百页,尾注也有几百个啊,于是我想起了VBA。但是之前只有短短一面之缘——用VBA缩小了word为当中的一堆图片。于是我开始了艰难的VBA之旅,花了一天的时间,完成了这个VBA程序,作为独立编写的VBA启蒙程序,在这里很愿意与大家分享下我的成果和感受。

首先,我觉得,word VBA的困难之处不在于语法,语法很简单,难在word错综繁杂的属性状态,使得整个word VBA变得零散不堪,这时候有个非常好的东西叫做“Help”。

先放下Help不提,来看下我接到的文档的格式,就是我的这个VBA即将面对的对象具有怎样的特点:



我现在要把它变成以下的样子:



怎样实现呢?就通过以下方法实现:

首先,调出“开发工具”选项卡,调出的方式如下图:word选项-->常用-->勾选 在功能区显示“开发工具”选项卡。



第二步,新建宏。开发工具-->输入宏名 endnotetext_replace_endnoteNum-->创建



第三步,完成代码。代码为:

Sub endnotetext_replace_endnoteNum()
'
' endnotetext_replace_endnoteNum 宏
'
'
Dim text1 As Word.Range                                          'text1将要存储尾注的文字
Dim Num, endnoNum As Integer                                     'Num为要操作的尾注编号,endnoNum为尾注的总个数
endnoNum = ActiveDocument.Endnotes.Count
Num = 1
For i = 1 To endnoNum
    Set text1 = ActiveDocument.Endnotes(Num).Range               'Num始终为1不变是因为第一个尾注被替换之后就没有了,第二个尾注又变成了第一个
    text1.Select
        text1.Copy
    Selection.GoTo what:=wdGoToLine, _
        which:=wdGoToAbsolute, Count:=1                           '将光标移至文档第一行
    Selection.GoTo what:=wdGoToEndnote, _
        which:=wdGoToAbsolute, Count:=Num                         '将光标移至第Num条尾注的引用位置之前
    Selection.Expand Unit:=wdCharacter                            '将光标扩展至整个尾注引用编号
    Selection.PasteAndFormat _
        wdFormatSurroundingFormattingWithEmphasis                 '粘贴,粘贴的内同的格式与周围格式相同
Next


End Sub



第四步,点击 运行。



完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值