ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-6-9 21:12 | 显示全部楼层
别客气!我虽然水平VBA编程水平很低(和大侠/版主那样的高手没法比),但很有热情,如果能帮到的,我一定帮,也是对我的锻炼嘛!
你参看一下我给你的总代码(91楼),其中注释行说到第一段落了,必须在它的后面用(第一段落的《篇名》如果不删除,当然它是要自动加上的。)

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-10 07:25 | 显示全部楼层
本帖最后由 13907933959 于 2015-6-10 07:31 编辑
413191246se 发表于 2015-6-9 21:12
别客气!我虽然水平VBA编程水平很低(和大侠/版主那样的高手没法比),但很有热情,如果能帮到的,我一定帮 ...

前辈好!
哪可不可以加上一段这个代码, If .Paragraphs(1).Range Like "<篇名>*" Then .Paragraphs(1).Range.Find.Execute FindText:="<篇名>", ReplaceWith:="", Replace:=wdReplaceAll '删除第一段<篇名>字样。让它既删除第一段<篇名>,又不让大标题加上★▲变色呢?如能、要怎样加?还请前辈教一下。我是怕以后碰到类似的问题也可解决。谢谢!

TA的精华主题

TA的得分主题

发表于 2015-6-10 09:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可以把这句代码加到《循环遍历文件夹》代码前面,一起执行,因为有个先后顺序(循环遍历文件夹这个循环体对每一段都一视同仁,所以必须先删除第一段的《篇名》)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-10 10:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2015-6-10 09:24
可以把这句代码加到《循环遍历文件夹》代码前面,一起执行,因为有个先后顺序(循环遍历文件夹这个循环体对 ...

前辈好!

我又碰到一个问题,就是这段代码我试了好几次,好象不能把点号替换成顿号,不知什么原因?直接就走到下一步,又替换回黑色。

'查找绿色某词替换为无
    With ActiveDocument.Content.Find
        .Font.Color = wdColorGreen
        .Execute FindText:=" .", ReplaceWith:="、", Format:=True, Replace:=wdReplaceAll
    End With

而前面的这个步骤以经把它变为了绿色,经试验确实看到以经为了绿色。

Selection.HomeKey Unit:=wdStory
    Do
        Selection.Find.Execute FindText:="^p^#."
        Selection.Font.Color = wdColorGreen
    Loop Until Selection.Find.Found = False

TA的精华主题

TA的得分主题

发表于 2015-6-10 16:03 | 显示全部楼层
经试验,发现代码没有问题!
第1段代码必须查找和替换必须具备两个条件:一是查找的是绿色文字;二是查找的文字是空格+句点(楼主是不是把句点前面的空格忽略了?)你拷贝到新建文档,点击《显示/隐藏编辑标记》按钮(即《显示比例》按钮的左边按钮),就可以看到,查找文字双引号中间是空格+句点。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-10 16:23 | 显示全部楼层
本帖最后由 13907933959 于 2015-6-10 16:47 编辑
413191246se 发表于 2015-6-10 16:03
经试验,发现代码没有问题!
第1段代码必须查找和替换必须具备两个条件:一是查找的是绿色文字;二是查找 ...

前辈好!

你提醒我了,去掉空格就好了。是我给你的时候错了,多了一个空格。嗨、外行就是外行,前辈呀!你知道我有多羡慕你!

TA的精华主题

TA的得分主题

发表于 2015-6-10 19:53 | 显示全部楼层
楼主,我建议你最好抽出一点时间来学习一下99楼我提供给你的《微软官方VBA帮助》,里面有不少示例,对你应该有很好的帮助(比如:怎么保存文档,怎么打开文档,里面各种方法都有,学一学有好处)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-11 07:40 | 显示全部楼层
413191246se 发表于 2015-6-10 19:53
楼主,我建议你最好抽出一点时间来学习一下99楼我提供给你的《微软官方VBA帮助》,里面有不少示例,对你应 ...

前辈好!
哪个前几天你给我的时候就下载了,一是对我这个一点基础都没有的人,一二天看不懂,二是没有时间,我白天和病人药材打交道,晚上要看医书医案,干我这个行业就象我师傅说的,努力一辈子不一定有结果,不努力那肯定是没有结果,我也想过不干了,刚开始选择这个行当由于年少无知,可现在我以经为它付出了五年的时间,也是骑虎难下,我现在又不会别的东西,再一个家里面的条件也不允许,嗨、穷人没有选择的权力,都是迫不得以,不说了,再说就伤感了。前辈、有时间我一定会看的,以后还少不了会向你求教,就是不太好意思经常打扰你,到时还请多多赐教,多多包容!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-11 17:00 | 显示全部楼层
13907933959 发表于 2015-6-11 07:40
前辈好!
哪个前几天你给我的时候就下载了,一是对我这个一点基础都没有的人,一二天看不懂,二是没有时 ...



前辈好!

能不能再劳你帮我编几段代码,这个不是“师命”是我自己要。

1、选定文档每段首行缩进开头的第一个字的代码。选定后再变为白色。
2、编一段“矩形”选择区域的代码(也就是纵向选定),选择文档每行开头的第一个字(首行缩进的除外)选定后再变为紫色。
3、“矩形”选择文档每行开头的第二个字(首行缩进的除外)选定后再变为黄色。
4、“矩形”选择文档每行开头的第三个字(首行缩进的除外)选定后再变为黑色。
5“矩形”选择文档每行开头的第四个字(首行缩进的除外)选定后再变为红色。
前辈、这几个代码我是想放在整理药方上用。最好能每段分开用,也能合起来用。谢谢!

TA的精华主题

TA的得分主题

发表于 2015-6-11 20:50 | 显示全部楼层
楼主,按住 Alt 键不放手,再用鼠标勾选选定文字,就是矩形选定,请试试如下代码:(可以让文档占一半窗口,VBE占一半窗口,在代码中按 F5 运行程序。——5个小程序,可分别运行。颜色我认为最鲜明的当属红色/粉红/蓝色/褐色等,黄色/绿色都不太显眼。)
Sub 首字白色()
'选定文档每段首行缩进开头的第一个字的代码。选定后再变为白色(只有首行缩进的段落才有效!)
    On Error Resume Next
    Dim i As Paragraph
    For Each i In ActiveDocument.Paragraphs
        If i.Range.ParagraphFormat.FirstLineIndent <> CentimetersToPoints(0) And i.Range.ParagraphFormat.CharacterUnitFirstLineIndent <> 0 Then i.Range.Characters(1).Font.Color = wdColorWhite
    Next
End Sub
Sub 首字紫色()
'编一段"矩形"选择区域的代码(也就是纵向选定),选择文档每行开头的第一个字(首行缩进的除外)选定后再变为紫色(按住ALT键用鼠标选择矩形区域)
    On Error Resume Next
    Dim i As Paragraph
    For Each i In Selection.Paragraphs
        If i.Range.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0) And i.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0 Then i.Range.Characters(1).Font.Color = wdColorPlum
    Next
End Sub
Sub 二字黄色()
'"矩形"选择文档每行开头的第二个字(首行缩进的除外)选定后再变为黄色
    On Error Resume Next
    Dim i As Paragraph
    For Each i In Selection.Paragraphs
        If i.Range.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0) And i.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0 Then i.Range.Characters(2).Font.Color = wdColorYellow
    Next
End Sub
Sub 三字黑色()
'"矩形"选择文档每行开头的第三个字(首行缩进的除外)选定后再变为黑色
    On Error Resume Next
    Dim i As Paragraph
    For Each i In Selection.Paragraphs
        If i.Range.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0) And i.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0 Then i.Range.Characters(3).Font.Color = wdColorBlack
    Next
End Sub
Sub 四字红色()
'"矩形"选择文档每行开头的第四个字(首行缩进的除外)选定后再变为红色
    On Error Resume Next
    Dim i As Paragraph
    For Each i In Selection.Paragraphs
        If i.Range.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0) And i.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0 Then i.Range.Characters(4).Font.Color = wdColorRed
    Next
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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