ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教:word下如何按条件设定字体颜色

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-1-19 18:33 | 显示全部楼层 |阅读模式

大侠:我在用邮件合并方式输出成绩单时,没办法将不及格的成绩设定为红色,能帮帮我吗?多谢啦 rkzQbqiK.rar (17.35 KB, 下载次数: 71)

文件已上传,请版主查阅

[此贴子已经被作者于2005-1-20 11:48:26编辑过]

TA的精华主题

TA的得分主题

发表于 2005-1-20 08:27 | 显示全部楼层
直接在EXCEL中打印成绩单吧,然后用条件格式可以实现你的要求。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-20 08:54 | 显示全部楼层
excel中,我不会用邮件合并呀

TA的精华主题

TA的得分主题

发表于 2005-1-20 08:57 | 显示全部楼层
你把数据源和主文档发上来,我给你做一下。

TA的精华主题

TA的得分主题

发表于 2005-1-20 10:40 | 显示全部楼层
邮件合并也不能使word中小于60分的分数变为红色!!

TA的精华主题

TA的得分主题

发表于 2005-1-20 11:00 | 显示全部楼层
以下是引用cysan在2005-1-20 10:40:00的发言: 邮件合并也不能使word中小于60分的分数变为红色!!
用常规思路做到自然很难,但如果你掌握了编程方法,其实是相当简单的一个工作。

TA的精华主题

TA的得分主题

发表于 2005-1-22 10:34 | 显示全部楼层

请参:

代码已经设置完毕,你只需确认数据源即可,我此处修改了一下,为“成绩表1”,

注意事项:一:必须启用宏,工具/宏/安全级:低。

二:如果数据源出现问题,可关闭该主文档后再次打开(重新初始化类模块)

ujXRkovo.zip (23.86 KB, 下载次数: 119)

以下代码供参考:

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-1-22 10:34:16 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [类模块-EventClassModule]^' '* -----------------------------

Public WithEvents App As Word.Application '在类模块中声明对应于事件的对象变量。 '编写指定事件的过程。 Private Sub App_MailMergeBeforeRecordMerge(ByVal Doc As Document, Cancel As Boolean) Dim i As Byte '如果主文档数据源中的字段1中的数据小于60(分)时 For i = 5 To 25 If Doc.MailMerge.DataSource.DataFields(i).Value < 60 Then '主文档表格的第二行第二列(相当于B2)中的字体为红色 Select Case i Case 5 To 9 Doc.Tables(2).Cell(2, i - 3).Range.Font.Color = wdColorRed Case 10 To 11 Doc.Tables(2).Cell(2, i - 1).Range.Font.Color = wdColorRed Case 12 To 16 Doc.Tables(2).Cell(3, i - 10).Range.Font.Color = wdColorRed Case 17 To 18 Doc.Tables(2).Cell(3, i - 8).Range.Font.Color = wdColorRed Case 19 To 23 Doc.Tables(2).Cell(4, i - 17).Range.Font.Color = wdColorRed Case 24 To 25 Doc.Tables(2).Cell(4, i - 15).Range.Font.Color = wdColorRed End Select Else '否则恢复默认字体颜色 Select Case i Case 5 To 9 Doc.Tables(2).Cell(2, i - 3).Range.Font.Color = wdColorAutomatic Case 10 To 11 Doc.Tables(2).Cell(2, i - 1).Range.Font.Color = wdColorAutomatic Case 12 To 16 Doc.Tables(2).Cell(3, i - 10).Range.Font.Color = wdColorAutomatic Case 17 To 18 Doc.Tables(2).Cell(3, i - 8).Range.Font.Color = wdColorAutomatic Case 19 To 23 Doc.Tables(2).Cell(4, i - 17).Range.Font.Color = wdColorAutomatic Case 24 To 25 Doc.Tables(2).Cell(4, i - 15).Range.Font.Color = wdColorAutomatic End Select End If Next End Sub '----------------------

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-1-22 10:34:36 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Dim X As New EventClassModule '从其他模块中初始化已声明的对象。 Private Sub Document_Open() Set X.App = Word.Application End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-22 14:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

文件已收到,谢谢版主,但字体颜色没有改变,不知为何

TA的精华主题

TA的得分主题

发表于 2005-1-22 15:49 | 显示全部楼层

你的宏安全性设为低了吗?

我重新试了一下,这是我的电脑上运行的结果,我的合并数量是1~26,你可以检查一下是否正确,应该没有问题。

如果你不熟悉操作,可以将数据源传上来,重要的话,你可以发到我的邮箱(shourou_8@hotmail.com)中,我帮你忙成。

wgb0TxYo.rar (23.47 KB, 下载次数: 71)
[此贴子已经被作者于2005-1-22 15:55:05编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-23 08:50 | 显示全部楼层

宏安全已经设置为低

但主文档仍然不能实现红色显示

看到合并的1-26数据,我将文件合并到新文件,一切OK了

感谢手柔版主

[em05][em05]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 14:26 , Processed in 0.037978 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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