通过宏在word中实现“图1

您所在的位置:网站首页 怎么将题注图1改为图1-1 通过宏在word中实现“图1

通过宏在word中实现“图1

2024-07-04 23:59| 来源: 网络整理| 查看: 265

最近在写毕业论文,由于论文格式的需要,一级标题必须是“第一章”,结果,在交叉引用图表的时候出现了“一-1”的尴尬效果。这里介绍一下一种较为灵活的思路,也是笔者对比了很多种方式之后觉得最好用的一种方式吧。

1. 解决“一-1的问题”

首先,我们根据论文的章节号,创建一系列的题注,假如我们共有5章,那么就可以创建5个如下图所示的题注。 在这里插入图片描述 创建题注的方法如下。 在这里插入图片描述

此时问题看起来大概是解决了,但是你可能会遇到如下的尴尬场景,没错,多了一个空格,并且我还希望插入题注后能够在题注的最后加上一个空格。 在这里插入图片描述

2. 解决空格问题 2.1 录制宏

接下来告诉大家如何解决这个问题,不算太复杂,但是对于第一次接触所谓宏的知识的小伙伴可能还是有点吃力,不过相信我,后面的步骤不难。

找到视图选项卡->宏->录制宏,将会弹出如下的菜单。 在这里插入图片描述 接着,我们可以看到如下的界面,在该界面下可以点击修改按钮指定新的按钮图标。 在这里插入图片描述

点击完确定后,就会在word的最上边出现一个按钮,以后点击即可调用宏脚本了。 在这里插入图片描述

2.2 编辑宏代码

随便录制完成后,我们继续点击“查看宏”,找到我们刚刚录制的宏。 在这里插入图片描述 接下来,会弹出如下的界面。我们只需要用后面的宏代码替换掉录制的宏代码,保存即可。 在这里插入图片描述

宏代码:

Sub InsertCaption() '修改系统插入“题注”命令 '功能:自动删除标签与编号间的空格(英文除外),并在题注数字后添加一个空格;适用于:Word 2003 - 2013,不兼容WPS文字! '真正从原理上协同系统插入题注,无任何前提条件;用户照常插入题注即可,甚至感觉不到程序的存在! 'Endlesswx于2015年8月4日 '另,如果插入的始终未域代码而不是数字,非程序问题,Alt+F9一次即可 Dim Lab As String, startPt As Long, endPt As Long, myrang As Range 'On Error Resume Next '发生错误时让程序继续执行下一句代码 ' Application.ScreenUpdating = False '关闭屏幕更新,2013在此处关闭更新会导致输入框灰色不可选,故修正在调出对话框之后 startPt = Selection.Start 'startPt标注起始点 '***将if条件隐藏隐藏即可实现----手动替换题注空格*** If Application.Dialogs(357).Show = -1 Then '插入“题注”对话框秀出来,如果按确定结束时执行以下程序,避免按取消后的空格,357也可换成wdDialogInsertCaption Application.ScreenUpdating = False '关闭屏幕更新 Lab = Dialogs(357).label endPt = Selection.Start 'endPt标记插入的题注部分终点 Selection.Start = startPt '选定插入的整个题注 '删除标签与编号间的空格(英文后的保留) With Selection.Find .Text = Lab & " " .Forward = True 'False=向上查找,(True=向下查找) .MatchWildcards = False '不使用通配符 If Lab Like "*[0-9a-zA-Z.]" Then '此处判断标签的最后一个字符是否为英文或数字,是则不删除空格 Else .Replacement.Text = Lab .Execute Replace:=wdReplaceOne '替换找到的第一个,此处用作删除空格 endPt = endPt - 1 '删除空格后,末位减1 Selection.End = endPt End If End With '在题注数字后添加一个空格 Selection.Fields.ToggleShowCodes '切换域代码,这样才能用^d查找域 With Selection.Find .Text = "^d" .Replacement.Text = "^& " .Forward = False 'False=向上查找,(True=向下查找) .MatchWildcards = False '不使用通配符 .Execute Replace:=wdReplaceOne '替换找到的第一个,此处用作添加空格 End With '选定整个插入的题注内容,将域代码切换回来 endPt = endPt + 1 '增加空格后,末位加1 With Selection .Start = startPt .End = endPt .Fields.ToggleShowCodes '切换域代码(切换回来) End With '将光标定位至题注所在段尾处 ' Selection.MoveRight Unit:=wdCharacter, Count:=1 '此句光标返回插入题注前的原始位置,对于已经输好标题的情况并不合适 '选择段尾回车符 With Selection.Find .Text = "^13" .Forward = True 'False=向上查找,(True=向下查找) .MatchWildcards = False '不使用通配符 .Wrap = wdFindContinue '继续查找 .Execute End With Selection.MoveLeft Unit:=wdCharacter, Count:=1 '定位到段尾回车前 End If Application.ScreenUpdating = True '恢复屏幕更新 End Sub

之后,我们就可以点击按钮就可以执行宏代码的内容,直接插入题注了。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3