吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 714|回复: 6
收起左侧

[经验求助] 邮件合并时,指定合并域字体

[复制链接]
clotus 发表于 2024-4-22 20:01
100吾爱币
请教:

word 邮件合并时,如何将合并域设置为excel中指定的字体?
Excel:
姓名 字体
张三 楷体
李四 宋体
王五 隶书
赵六 仿宋
word:
《姓名》 先生

邮件合并时,不同的姓名,如何设置为excel中指定的不同字体?
姓名为张三时,“姓名”处,设置为:楷体;
姓名为李四时,“姓名”处,设置为:宋体  ……

谢谢。



最佳答案

查看完整内容

[mw_shl_code=python,true]Sub SetFontBetweenMarkersToSongTiAndRemoveMarkers() Dim doc As Document Dim startMarker As String Dim endMarker As String Dim startRange As Range Dim endRange As Range Dim contentRange As Range Dim foundStart As Boolean Dim foundEnd As Boolean ' 设置开始和结束标记 startMarker = "宋体开始" ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zjg121 发表于 2024-4-22 20:01
[Python] 纯文本查看 复制代码
Sub SetFontBetweenMarkersToSongTiAndRemoveMarkers()  
    Dim doc As Document  
    Dim startMarker As String  
    Dim endMarker As String  
    Dim startRange As Range  
    Dim endRange As Range  
    Dim contentRange As Range  
    Dim foundStart As Boolean  
    Dim foundEnd As Boolean  
      
    ' 设置开始和结束标记  
    startMarker = "宋体开始"  
    endMarker = "宋体结束"  
      
    ' 获取当前活动的文档  
    Set doc = ActiveDocument  
      
    ' 设置初始内容范围为整个文档内容  
    Set contentRange = doc.Content  
      
    ' 循环遍历文档内容  
    Do While Not contentRange.End = doc.Content.End  
        ' 查找开始标记  
        foundStart = False  
        With contentRange.Find  
            .ClearFormatting  
            .Text = startMarker  
            .Execute  
            If .Found Then  
                foundStart = True  
                Set startRange = contentRange.Duplicate  
                startRange.Collapse wdCollapseEnd  
                startRange.MoveStart wdCharacter, Len(startMarker)  
                  
                ' 查找结束标记  
                foundEnd = False  
                With contentRange.Find  
                    .ClearFormatting  
                    .Text = endMarker  
                    .Execute  
                    If .Found Then  
                        foundEnd = True  
                        Set endRange = contentRange.Duplicate  
                        endRange.Collapse wdCollapseStart  
                        endRange.MoveEnd wdCharacter, -Len(endMarker)  
                          
                        ' 设置开始和结束范围之间的文本为宋体  
                        startRange.End = endRange.Start  
                        startRange.Font.Name = "宋体"  
                          
                        ' 删除开始和结束标记  
                        startRange.Collapse wdCollapseStart  
                        startRange.Delete  
                        endRange.Collapse wdCollapseEnd  
                        endRange.Delete  
                          
                        ' 更新内容范围以继续搜索  
                        contentRange.Start = endRange.Start  
                    Else  
                        ' 如果没有找到结束标记,则删除开始标记并退出循环  
                        startRange.Collapse wdCollapseStart  
                        startRange.Delete  
                        Exit Do  
                    End If  
                End With  
            End If  
        End With  
          
        ' 如果当前内容范围已到达文档末尾,则退出循环  
        If contentRange.End = doc.Content.End Then  
            Exit Do  
        End If  
          
        ' 移动内容范围的起始点到当前位置的下一个字符,继续搜索  
        contentRange.Start = contentRange.End  
        contentRange.Collapse wdCollapseStart  
    Loop  
End Sub
jys159 发表于 2024-4-22 20:18
zjg121 发表于 2024-4-23 09:38
直接对设置域的字体,如下面图片中的姓名设为仿宋,居住地设为黑体。预览后就是所设置的样子。


dlxg 发表于 2024-4-23 10:49
zjg121 发表于 2024-4-23 09:38
直接对设置域的字体,如下面图片中的姓名设为仿宋,居住地设为黑体。预览后就是所设置的样子。

你是没理解楼主的意思,他是同一个位置,显示不同的内容,对应不同的字体。。不是你这个。
zjg121 发表于 2024-4-23 14:19
这也好办,三个步骤即可:1excel里的姓名和字体组合一下如:张三 宋体 变成一个    宋体开始张三宋体结束。2插入时不要插入姓名,插入姓名组合字体的那一列。3完成后,再用vba替换一下。
 楼主| clotus 发表于 2024-4-24 14:07
zjg121 发表于 2024-4-22 20:01
[mw_shl_code=python,true]Sub SetFontBetweenMarkersToSongTiAndRemoveMarkers()  
    Dim doc As Docum ...

感谢相助。我是
1、在word最后一行,把字体作为合并域,写进去。
2、生成邮件文件后,粘贴进代码,
3、循环:定位关键字,读取字体名称,修改为选定的字体后,把字体标识改为空格。


免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zjg121 + 1 + 1 用心讨论,共获提升!

查看全部评分

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

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 09:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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