精华内容
下载资源
问答
  • 撰写论文时为了修改方便,通常以插入题注和交叉引用的方式来...Word插入题注时自动删除标签与编号前的空格编号后添加空格 例如,我们给图片A添加题注:图1+空格符+图片A Word自带的添加题注功能添加后为:图+空格

    问题引入

    撰写论文时为了修改方便,通常以插入题注和交叉引用的方式来给图片标号,这样修改图片和图号后可以方便、自动地更新。

    然而,Word在插入题注上从03到13一直没有针对中国用户优化。

    1. 插入题注的标签与编号间有一个空格,当标签是中文时需要用户手动删除
    2. 标签后竟然不插入空格!

    新浪微博大神Endlesswx通过宏编程很好地解决了这个问题,具体请看新浪博客

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

    • 例如,我们给图片A添加题注:图1+空格符+图片A
    • Word自带的添加题注功能添加后为:图+空格符+1
    • 而我们想要的效果是:图1+空格符

    问题分析

    当你在Word2019中对Visio对象的图片(Visio中画的图直接组合复制到word中)通过上面这个宏去操作的时候,会出现问题,经过调试发现,问题在这儿

     Selection.Fields.ToggleShowCodes  '切换域代码,这样才能用^d查找域
    

    这句代码的主要思路是:将题注的标签和编号一起选中,即将图1切换为域代码,然后通过^d查找域的方法(具体不太懂,但没关系)来找关键字,然后进行替换,达成我们想要的目的。

    '选定整个插入的题注内容,将域代码切换回来
     endPt = endPt + 1 '增加空格后,末位加1
     With Selection
        .Start = startPt
        .End = endPt
        .Fields.ToggleShowCodes   '切换域代码(切换回来)
     End With
    

    这段代码的功能是:将修改后的图+标签+编号一起选中,然后从域代码切换回来。需要注意的地方是这段代码会将图片也选中,当图片是普通的图片时,当然没有任何问题;但当图片是Visio对象图片时,问题就来了,这段代码会将Visio对象图片切换为一串代码。

    问题解决

    究其原因就是切换回来的时候连图片也选中了,那么就好办了,我们让它切换的时候还是只选中标签+编号,然后再执行切换代码即可(当然你也可以在Word中手动再切换回来)。

    经过调试,更改这段代码,将标签的位置设置为起始位置即可

    更改前:

    '删除标签与编号间的空格(英文后的保留)
     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
    

    更改后:

    '删除标签与编号间的空格(英文后的保留)
    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
          startPt = Selection.Start '更改的代码
          Selection.End = endPt
       End If
    End With
    

    倒数第4行为新加入的代码,这样就不会修改Visio对象图片了,完美解决。

    完整宏代码

    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
                 startPt = Selection.Start
                 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
    

    感悟

    程序猿就是好啊,自己动手,丰衣足食,哈哈哈!!!

    欢迎关注,不断更新中……

    在这里插入图片描述

    展开全文
  • 本文转自Word插入题注时自动删除标签与编号前的空格编号后添加空格_Endlesswx_新浪博客,Word 2016版仍然有效。转载只为方便查找。问题提出:不得不说,Word在插入题注上从03到13一直没有针对中国用户优化。1. ...

    本文转自Word插入题注时自动删除标签与编号前的空格,编号后添加空格_Endlesswx_新浪博客,Word 2016版仍然有效。转载只为方便查找。

    问题提出:
    不得不说,Word在插入题注上从03到13一直没有针对中国用户优化。
    1. 插入题注的标签与编号间有一个空格,当标签是中文时需要用户手动删除
    2. 标签后竟然不插入空格!
    当上述两条加到一起时,我插入标签为“表格”,名称为“12月消费清单”的题注就呈现下左图的丑样:

    704bef406c73ce5b706f6fdd51453c2e.png

    5d3f615535cf4f2ccc4c54d4b8ab34fb.png


    打印出来就这样,到底是表格1,还是表格11,表格112呢?这时就需要用户前删空格,后添空格,选来选去反正我是感觉有点烦!功能演示:

    63470dbea9530d0a1e92c58e917e353f.gif

    程序功能:

    1. 程序是调用系统的“插入题注对话框”,以前怎么插题注现在还怎么用,学习成本与多余步骤
    2. 中文与编号间空格删除,英文与编号见空格保留(见动态图中第3个Figure)
    3. 编号数字与题注内容见添加一个空格,予以区分
    其实程序还支持插入时不填内容、在文档中输好的内容前插入等等,自行体验吧。

    使用方法:

    第一步:录制一个宏(主要为了创建NewMacros模块,以前录制过的请跳过此步),记住宏名,默认为“宏1”
    03:工具→宏→录制新宏→确定→单击“停止”按钮
    10:单击WORD状态栏的录制宏按钮(或开发工具→录制宏)→确定→单击“停止”按钮
    16:视图-宏-录制宏-确定,视图-宏-停止录制第二步:ALT+F11(打开VBA对话框)
    将以上代码替换到打开的
    Sub 宏1()
    '
    ' 宏1 宏
    '
    '
    End Sub
    模块
    第三步:用系统的插入题注即可
    另,本人会为插入题注设置快捷键Alt+[,这个看个人喜好,设置方法参见另一博文:文本从PDF等粘贴到WORD中,智能删除多余的空格和回车中使用方法部分

    程序代码:

    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

    后话:

    其实这个程序的方法有点“末端治理”的意思了,最美好的情况是微软直接优化“插入题注”的源程序了,只能期待吧!

    展开全文
  • 因为WPS编号后面默认是制表符。右键出问题的编号,选择“调整列表缩进”,在“编号之后”里把“制表符”换成“空格”就好了。

    因为WPS编号后面默认是制表符。右键出问题的编号,选择“调整列表缩进”,在“编号之后”里把“制表符”换成“空格”就好了。

    展开全文
  • 眼下,不少学生正在书写毕业论文,然而为了解决文章大量图片的自动编号问题,很多人使用了图片的“”题注“”功能,但是该功能一个缺陷,那就是在图编号中间存在一个空格,解决空格问题两种方法,一种是采用网上...
  • 在word2010中,可能大家会遇到这样的情况,就是想在插入公式后插入一个编号,但是会发现插入编号后,公式自动变小了。两种方法可以解决:(1)安装公式编辑器mathtype,就可以轻松的解决此问题。(2)在不安装公式...
  • 空格非彼空格

    2019-07-01 16:26:00
    今天碰问我一个问题:他做的是国内某手机官网,因为业务操作人员在平台录手机信息时经常会在商品编号中多添加一些空格,导致系统出现一些问题,因此他们就在存手机信息时候使用 str.replaceAll(" ", "")将空格全部...
  • 我的页面中出现了td标签使用 ul 标签出现圆点和左侧空格的问题,格式比较难控制,如何去除左边空格的问题??? ``` <!DOCTYPE ...
  • 为了这些信息的准确,用户要求在数据保存的时候,产品编号、序列号等字段前后不能够有空格。因为后面的产品图片地址等信息都是根据产品编号来自动编制的。如果产品编号后面有空格,则产品图片的URL地址就会出现问题...
  • js空格判断

    千次阅读 2009-11-14 21:55:00
    其实空格有两个,一个ASCII编号是32,另一个是ASCII编号是160.者是unicode编码。以前写一个贴子ie6下准确判断空格还以是IE6不能正确判断空格
  • 获取编号

    2019-07-29 08:33:55
    查找出表中最大的编号,去空格编号是在点击保存按钮再从数据库中获取,而不是赋值道页面之中。不然当同时点击添加时会出现两个一样的编号编号不同才意义。 IF判定是否为新增 DataTable dt 存储数据库中...
  • 具体情况是我在后端做了重复添加的校验,但是当仍然添加相同的编号,且编号后空格,后端逻辑识别不出为同一个编号,原因是带空格。然后就把空格去掉呗,使用String类中的方法,在前一篇博客中提到String类的常用...
  • 其实空格有两个,一个ASCII编号是32,另一个是ASCII编号是160.者是unicode编码。以前写一个贴子ie6下准确判断空格还以是IE6不能正确判断空格
  • 最近在项目中遇到,通过截取字符串,获取编号, 去数据库查询,结果因为截取的编号有空格,导致数据查询不到。 String applyno = "L181106000182, L181107000252"; String[] applynoArr = applyno.split...
  • 为了这些信息的准确,用户要求在数据保存的时候,产品编号、序列号等字段前后不能够有空格。因为后面的产品图片地址等信息都是根据产品编号来自动编制的。如果产品编号后面有空格,则产品图片的URL地址就会出现问题...
  • js去字符串空格终极版

    千次阅读 2009-11-14 22:50:00
    其实空格有两个,一个ASCII编号是32,另一个是ASCII编号是160.者是unicode编码。以前写一个贴子ie6下准确判断空格还以是IE6不能正确判断空格。 其实这个问题是:如果你的js本身是unicode编码,那么用正则表达式/s...
  • //为了每次输入可以立即显示所输入的字符,先要清除缓冲区 } length=i+1; cout; return success; } returninfo String::strinsert(int position,char newstr[],int str_length)//插入,当插入的字符串...
  • 使用Endnote管理参考文献,最有效的方法是...3、数字编号后面空格的设置这些设置的是在word中修改,的是endnote,总结是3个地方可以修改这个参考文献的格式:1是endnote中的参考文献输出样式;2是word中的样式...
  • 查看USB以及摄像头编号

    千次阅读 2019-06-06 17:58:58
    将Arduino用USB线连接到树莓派的USB,在树莓派中输入(注意ls后有一个空格) Ls /dev/tty* 查看两者连接端口的名字。查看是否出现ttyACM0或ttyUSB0。连接uno出现ttyACM0,连接mega2560出现ttyUSB0。看到ttyAC...
  • 题目内容: 班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成...按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后...
  • 2012Word公式自动编号

    2013-05-23 15:33:00
    问题描述 1、自动标号,如在(3-2)之前再插入公式,就变成(3-3) ...4、就得到如下的的编号,去掉"("和“4”直接的空格,美观点 5、选中“视图”下面的“标尺”,就会显示标尺啦 6、光标放...
  • 约瑟夫环问题 题目编号:657 题目要求: 设有编号为1,2,…,n的n个人围成一个圈,给定一个密码m,...输出出圈的n个人的次序,以空格隔开,最后一个元素后有空格 输入样例 10 3 输出样例 3 6 9 2 7 1 8 5 10 4 解题思路
  • 题目内容: 班级第一次列队,通常老师会让同学...按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后面没有空格。 输入样例: 11 输出样例: 1 3 5 7 9 11 #include <stdio.h&
  • 如果在段落开始处键入的数字(或字母)句点、空格或 tab 符号,此功能即自动向列表应用自动编号[LN1]列表格式。例如,如果键入 1. 或 a.,键入列表文本,然后按 ENTER 键,Microsoft Word 就会自动按顺序插入下...
  • word中让编号自动对齐的方法好几种,这里介绍一种最简单快捷的方式:1、首先打开需要编辑的word文档 ,点击鼠标右键,然后出现如下图所示的工具框;2、选择编号那一行,鼠标左键点击定义新编号格式;3、出现定义新...
  • 一、封面首先打开 word,新建一份空白文档在首页插入1x4 的表格:调整表格高度、对齐方式输入文字,隐藏表格框线即可完成封面。不需要用回车空格,只需要修改表格高度即可完成位置调整。隐藏框线:可以插入图片...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 717
精华内容 286
关键字:

编号后有空格