+ -
当前位置:首页 → 问答吧 → 求教:word下如何按条件设定字体颜色

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

时间:2005-01-19

来源:互联网

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

rkzQbqiK.rar (17.35 KB)
求教:word下如何按条件设定字体颜色
下载次数: 26
2005-1-20 11:49

文件已上传,请版主查阅

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

作者: mascql   发布时间: 2005-01-19

直接在EXCEL中打印成绩单吧,然后用条件格式可以实现你的要求。

作者: cxffxc   发布时间: 2005-01-20

excel中,我不会用邮件合并呀

作者: mascql   发布时间: 2005-01-20

你把数据源和主文档发上来,我给你做一下。

作者: 守柔   发布时间: 2005-01-20

邮件合并也不能使word中小于60分的分数变为红色!!

作者: cysan   发布时间: 2005-01-20

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

作者: 守柔   发布时间: 2005-01-20

请参:

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

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

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

ujXRkovo.zip (23.86 KB)

ujXRkovo.zip (23.86 KB)
求教:word下如何按条件设定字体颜色
下载次数: 45
2005-1-22 10:32

以下代码供参考:

'* +++++++++++++++++++++++++++++'* 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 25If Doc.MailMerge.DataSource.DataFields(i).Value < 60 Then'主文档表格的第二行第二列(相当于B2)中的字体为红色Select Case iCase 5 To 9Doc.Tables(2).Cell(2, i - 3).Range.Font.Color = wdColorRedCase 10 To 11Doc.Tables(2).Cell(2, i - 1).Range.Font.Color = wdColorRedCase 12 To 16Doc.Tables(2).Cell(3, i - 10).Range.Font.Color = wdColorRedCase 17 To 18Doc.Tables(2).Cell(3, i - 8).Range.Font.Color = wdColorRedCase 19 To 23Doc.Tables(2).Cell(4, i - 17).Range.Font.Color = wdColorRedCase 24 To 25Doc.Tables(2).Cell(4, i - 15).Range.Font.Color = wdColorRedEnd SelectElse '否则恢复默认字体颜色Select Case iCase 5 To 9Doc.Tables(2).Cell(2, i - 3).Range.Font.Color = wdColorAutomaticCase 10 To 11Doc.Tables(2).Cell(2, i - 1).Range.Font.Color = wdColorAutomaticCase 12 To 16Doc.Tables(2).Cell(3, i - 10).Range.Font.Color = wdColorAutomaticCase 17 To 18Doc.Tables(2).Cell(3, i - 8).Range.Font.Color = wdColorAutomaticCase 19 To 23Doc.Tables(2).Cell(4, i - 17).Range.Font.Color = wdColorAutomaticCase 24 To 25Doc.Tables(2).Cell(4, i - 15).Range.Font.Color = wdColorAutomaticEnd SelectEnd IfNextEnd 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.ApplicationEnd Sub'----------------------

作者: 守柔   发布时间: 2005-01-22

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

作者: mascql   发布时间: 2005-01-22

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

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

如果你不熟悉操作,可以将数据源传上来,重要的话,你可以发到我的邮箱([email protected])中,我帮你忙成。

wgb0TxYo.rar (23.47 KB)
wgb0TxYo.rar (23.47 KB)
下载次数: 26
2005-1-22 15:55

[此贴子已经被作者于2005-1-22 15:55:05编辑过]

作者: 守柔   发布时间: 2005-01-22

宏安全已经设置为低

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

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

感谢手柔版主

[em05][em05]

作者: mascql   发布时间: 2005-01-23

哈,理解上有些问题,也怪我没有说得太清楚。

此事件发生在合并文档之前。所以,必须在合并文档过程中,才会自动执行。通过代码,自动根据条件设置将主文档字体改变后,则子文档中字体跟着改变。

有兴趣还可以看一下我的《邮件合并的一些高级应用》一文,也许对你的工作有所启发。http://club.excelhome.net/viewthread.php?tid=79814

作者: 守柔   发布时间: 2005-01-23

非常感谢守柔如此热心的指导与帮助

由于工作的需要,我经常要用到WORD和EXCEL

对于宏我以前一直不懂,现在还是似懂非懂(有点笨了)

以后还请班主多指教,在下感激不尽

作者: mascql   发布时间: 2005-01-23

為什麼不用功能變數(域)解決比較單純?

{if {分數}<60 {分數} {分數}}

[ 本帖最后由 linyancheng 于 2010-3-7 21:32 编辑 ]

作者: linyancheng   发布时间: 2010-03-07

学习学习。。

作者: wj2368   发布时间: 2010-05-19

对我来说很有难度,呵呵,学习一下

作者: 片羽吉光   发布时间: 2011-04-02

热门下载

更多