ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 13907933959

[求助] Word录制宏后,让宏对字体的颜色更改为蓝色、无法保存

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-6-22 19:12 | 显示全部楼层
楼主,129楼三个宏就是昨天你需要的三个宏,不必做任何修改了!
你楼上这个宏,我也没好好看,我就提供一下把前天的四五个宏组合在一起的宏吧!(在新的宏 Sub XXX()...End Sub里,只须把其它的宏名拷贝到此宏即可运行它了,也叫引用;不需要的宏可以删除,也可以注释掉)
Sub 颜色合用()
'只须把每个分过程(Sub...End Sub)的过程名拷贝到此过程即可
    首字白色
    首字紫色
    次字黄色
    三字黑色
    四字红色
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-22 20:46 | 显示全部楼层
413191246se 发表于 2015-6-22 19:12
楼主,129楼三个宏就是昨天你需要的三个宏,不必做任何修改了!
你楼上这个宏,我也没好好看,我就提供一 ...

前辈好!
还是运成不了,我也不知错在那里,实在是不懂,还是麻烦你把这个代码放到电脑里运行一下、给改一下,我也知道以占用了你太多时间和精力,实在是愧疚,我也知道很烦人,也实在是不得以,恳请前辈体谅继续帮帮我这个外行,拜托、拜托!!!
Sub 颜色合用()
'选择文档每行开头的第二个字(首行缩进的除外)选定后让字体变为黄色。
    Dim i As Paragraph, j As Long, k As Long
    For Each i In ActiveDocument.Paragraphs
        If i.Range.ParagraphFormat.CharacterUnitFirstLineIndent <> 0 And i.Range.ParagraphFormat.FirstLineIndent <> CentimetersToPoints(0) Then j = 1 Else j = 0
        i.Range.Select
        Do
            Selection.HomeKey Unit:=wdLine
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            If j = 1 And k = 0 Then GoTo skipfirst
            Selection.Font.Color = wdColorYellow '黄色
skipfirst:
            Selection.EndKey Unit:=wdLine
            If Asc(Selection) <> 13 Then
                Selection.MoveDown Unit:=wdLine, Count:=1
            Else
                Exit Do
            End If
            k = 1
        Loop
        k = 0
    Next
End With
'查找黄色某词替换为无
   With ActiveDocument.Content.Find
        .Font.Color = wdColorYellow
        .Execute FindText:="^p", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
End With
'查找小二/黄色替换为红色
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Font.Size = 18 '小二
        .Font.Color = wdColorYellow '黄色(替换前)
        With .Replacement
            .ClearFormatting
            .Font.Color = wdColorRed '红色(替换后)
        End With
      '查找黄色替换为黑色
    With ActiveDocument.Content.Find
        .Font.Color = wdColorYellow
        .Replacement.Font.Color = wdColorBlack
        .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2015-6-22 22:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主,上楼代码纠错结果如下:(如果你对我编的各个小过程满意,可以只把过程名称拷贝到一个宏里面即可,这样可少出错。这几段代码效果都互相抵消了,我感觉。——如不满意,可继续跟帖发出新问题,我重新编辑。)
Sub 颜色合用()

'选择文档每行开头的第二个字(首行缩进的除外)选定后让字体变为黄色。
    Dim i As Paragraph, j As Long, k As Long
    For Each i In ActiveDocument.Paragraphs
        If i.Range.ParagraphFormat.CharacterUnitFirstLineIndent <> 0 And i.Range.ParagraphFormat.FirstLineIndent <> CentimetersToPoints(0) Then j = 1 Else j = 0
        i.Range.Select
        Do
            Selection.HomeKey Unit:=wdLine
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            If j = 1 And k = 0 Then GoTo skipfirst
            Selection.Font.Color = wdColorYellow '黄色
skipfirst:
            Selection.EndKey Unit:=wdLine
            If Asc(Selection) <> 13 Then
                Selection.MoveDown Unit:=wdLine, Count:=1
            Else
                Exit Do
            End If
            k = 1
        Loop
        k = 0
    Next
   
'查找黄色某词替换为无
   With ActiveDocument.Content.Find
        .Font.Color = wdColorYellow
        .Execute FindText:="^p", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
    End With
   
'查找小二/黄色替换为红色
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Font.Size = 18 '小二
        .Font.Color = wdColorYellow '黄色(替换前)
        With .Replacement
            .ClearFormatting
            .Font.Color = wdColorRed '红色(替换后)
        End With
    End With
   
'查找黄色替换为黑色
    With ActiveDocument.Content.Find
        .Font.Color = wdColorYellow
        .Replacement.Font.Color = wdColorBlack
        .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-23 07:29 | 显示全部楼层
413191246se 发表于 2015-6-22 22:41
楼主,上楼代码纠错结果如下:(如果你对我编的各个小过程满意,可以只把过程名称拷贝到一个宏里面即可,这 ...

前辈好!
程序运行正常,可不知为什么第3步“查找小二/黄色替换为红色”这个没有实现,最后还是被替换成了黑色,真是不好意思、还要劳请你再看一看,谢谢!

TA的精华主题

TA的得分主题

发表于 2015-6-23 10:59 | 显示全部楼层
楼主,你第三步弄丢了一行语句:        .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
Sub 颜色合用()

'选择文档每行开头的第二个字(首行缩进的除外)选定后让字体变为黄色。
    Dim i As Paragraph, j As Long, k As Long
    For Each i In ActiveDocument.Paragraphs
        If i.Range.ParagraphFormat.CharacterUnitFirstLineIndent <> 0 And i.Range.ParagraphFormat.FirstLineIndent <> CentimetersToPoints(0) Then j = 1 Else j = 0
        i.Range.Select
        Do
            Selection.HomeKey Unit:=wdLine
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            If j = 1 And k = 0 Then GoTo skipfirst
            Selection.Font.Color = wdColorYellow '黄色
skipfirst:
            Selection.EndKey Unit:=wdLine
            If Asc(Selection) <> 13 Then
                Selection.MoveDown Unit:=wdLine, Count:=1
            Else
                Exit Do
            End If
            k = 1
        Loop
        k = 0
    Next
   
'查找黄色某词替换为无
   With ActiveDocument.Content.Find
        .Font.Color = wdColorYellow
        .Execute FindText:="^p", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
    End With
   
'查找小二/黄色替换为红色
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Font.Size = 18 '小二
        .Font.Color = wdColorYellow '黄色(替换前)
        With .Replacement
            .ClearFormatting
            .Font.Color = wdColorRed '红色(替换后)
        End With
        .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
    End With
   
'查找黄色替换为黑色
    With ActiveDocument.Content.Find
        .Font.Color = wdColorYellow
        .Replacement.Font.Color = wdColorBlack
        .Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2015-6-23 11:05 | 显示全部楼层
另外,楼主你说下箭头是不是全插入再删除的?不是的,是指符合条件的段落最后一行前面插入下箭头,如果增多一行,则选定此段落删除下箭头(不符合条件的段落是不会插入下箭头的)。
还有,楼主你的“颜色合并”的目的是干什么?如果仍未达到目的,你重新叙述一下要达到什么样的效果,我好再给你编。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-23 11:59 | 显示全部楼层
413191246se 发表于 2015-6-23 11:05
另外,楼主你说下箭头是不是全插入再删除的?不是的,是指符合条件的段落最后一行前面插入下箭头,如果增多 ...

     前辈好!

    笨徒弟总是让师父多费心血,外行总是问题多,这一段时间对你的不断打扰,还请师父多多包容、多多原谅,程序经你修改纠错后运行正常,完美解决问题,我也可以轻松一下了,徒弟耗费了你太多心血和时间深表歉意,可对我们学医的又有个忌口,不能说:“以后有事找我、欢迎再来”之类的话,何况我还是个刚入门学业未成的。总之我会永远记得在ExcelHome技术论坛里有位413191246se的前辈曾多次帮过我的大忙,古话说得好,大恩不言谢!

    別的不说了,还是来句老套的,祝你全家幸福安康,万事如意!虽然祝福的句子是老套的,但这是我发自内心对你全家的祝福!真的、前辈!真诚得感谢你、谢谢!谢谢!

    不过、还请师傅允许我以后还有再向你救教的资格!这个还请师傅千万要恩准!!!

TA的精华主题

TA的得分主题

发表于 2015-6-23 15:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
    一、楼主不必太客气,我能帮忙一定帮。——其实我也是会录制宏很多年,但是真正懂编辑VBA代码仅仅是2011年6月才开窍的,以前确实懵懂无知。
    二、我还是建议楼主,什么时间抽出一个专门时间段,好好学一学微软官方VBA帮助,相信,你在录制宏的基础上(现在也会编辑一定的VBA宏代码了!)会有一定的提高,对于以后从事医学资料整理也有好处。
    三、楼主,我有——Word2003 通用模板(夏季版)2015-6-5,如果你有兴趣可以下载试用(在 C 盘查找 Normal.dot,并勾选高级搜索,不管有一个还是两个,找到 Normal.dot 这个通用模板后,删除它,但要记住当前文件夹路径,并把我的空白通用模板 Normal.dot 放到刚才的文件夹中,删除旧 Normal.dot 要事先关闭 Word2003,再打开 Word),如果不需要我的模板,可以不必下载。
我的模板下载页面:http://club.excelhome.net/thread-1209664-1-3.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-24 08:06 | 显示全部楼层
413191246se 发表于 2015-6-23 15:52
一、楼主不必太客气,我能帮忙一定帮。——其实我也是会录制宏很多年,但是真正懂编辑VBA代码仅仅是201 ...

前辈好!
你真是一个良师益友加兄长,能有幸认识你真是运气加福气,有时间一定按你说的做,这不是敷衍你,确实是时间少,我和师兄5个人每天只睡5~6个小时,现在更少,要全手工逐行校对整理上次的700本书,由于我“作出了突出贡献”,这些书师傅没有分任务给我,我还是整理医案、病例、药材、病人资料,他们可惨了平均每人175本,最长的一本书有将近9千页,短的也有170多页,他们至少在这半年的时间是没有喘气的时间,他们忌妒死我了,开玩笑说师傅偏袒我,师傅说他们有不有良心,说我一个人做了95%,他们几个人才干5%,师兄们说我有神仙答救,师傅说你们现在也去找一个来答救你们的,我看得出这次整理这700本书师傅是高兴的,用心也是良苦、他是想通过让徒弟们整理这些本书来看看这些书。
前辈、我又碰到了难题了,要你这位神仙答救答救我!
怎样把下面这些病人名单排列成图片上的排列方式(不是搞成图片)。

名单.zip

430.29 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2015-6-24 14:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
13907933959 发表于 2015-6-24 08:06
前辈好!你真是一个良师益友加兄长,能有幸认识你真是运气加福气,有时间一定按你说的做,这不是敷衍你, ...

你的文档特点:1、整个文档只有1个段落组成;2、文档中人名之间只有一种符号“、”。
所以可以:1、文本转换为表格(自己根据需要定义列数,比如10列)2、调整好后隐藏表格框线。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 04:55 , Processed in 0.023768 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表