美文网首页
[Word]插入题注时自动删除标签与编号前的空格,编号后添加空格

[Word]插入题注时自动删除标签与编号前的空格,编号后添加空格

作者: LIANG静闲 | 来源:发表于2022-12-10 15:51 被阅读0次
添加VBA宏代码前后插入题注的效果 2022-12-11
word 插入题注后标签与编号间有一个空格,编号与标题之间没有空格!这显然不符合中文习惯。中文习惯应该是题注的标签与编号间没有空格,编号与标题之间有空格。可通过插入一段VBA宏代码解决这个问题。步骤如下面3个图所示。 Word2019查看宏 新建一个名为InsertCaption的宏 点击编辑打开宏编辑器,复制以下命令后添加至宏代码

复制以下命令后添加至宏代码(word需要启用宏功能)

Sub InsertCaption()
'功能:自动删除标签与编号间的空格,并在题注数字后添加一个空格,即将“图_1”变为“图1_”,“_”表示空格。
'仅用于“图”,其他标签需要修改代码;宏代码在Word 2019上通过测试。
'真正从原理上协同系统插入题注,无任何前提条件;用户照常插入题注即可,甚至感觉不到程序的存在!
'LiangNN 2022年12月11日 参考网络代码,简化修改

Dim startPt As Long, endPt As Long
    startPt = Selection.Start 'startPt标注起始点
    '插入“题注”对话框出来后,选择“图”标签,按“确定”结束则会执行以下程序。不要在对话框里输入标题!否则程序出错
    If Dialogs(wdDialogInsertCaption).Show = -1 And Dialogs(357).Label = "图" Then '数字357同样表示wdDialogInsertCaption对话框
        endPt = Selection.Start 'endPt标记插入的题注部分终点
        Selection.Start = startPt '选定插入的整个题注
        '删除标签与编号间的空格
        With Selection.Find
            .Text = "图 "
            .Forward = True 'False=向上查找,(True=向下查找)
            .MatchWildcards = False '不使用通配符
            .Replacement.Text = "图"
            .Execute Replace:=wdReplaceOne '替换找到的第一个,此处用作删除空格
            endPt = endPt - 1 '删除空格后,末位减1
            Selection.Start = endPt '取消选中,将鼠标移动到编号后面
            Selection.End = endPt
            Selection.TypeText Text:=" " '编号后添加一个空格
        End With
    End If
End Sub

参考网页:[转载][Word]插入题注时自动删除标签与编号前的空格,编号后添加空格 - 知乎 (zhihu.com)

相关文章

网友评论

      本文标题:[Word]插入题注时自动删除标签与编号前的空格,编号后添加空格

      本文链接:https://www.haomeiwen.com/subject/gnqxqdtx.html