ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何给已设置分散对齐格式且已选定的文字,添加底纹但不能影响原分散对齐格式?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-21 18:34 | 显示全部楼层 |阅读模式
本帖最后由 chenlifeng123 于 2018-4-21 19:20 编辑

在源文件中,我已经 对“经典文学”4个字进行了分散对齐的格式设置;然后手动选择“经典文学”4个字,再执行下面的代码。
       目的是要给“经典文学”4个字添加底纹。
       但疑问出来了:执行完代码后,原设置好的分散格式发生了细微变化,把“经典文学”4个字后面的“:”给遮盖了部分,我不想“:”被遮盖,而是要保持原效果,请问如何给“经典文学”4个字添加底纹?
       (注意的是,本疑问只是举例,在同word文档中存在多个已设置好分散对齐的字符,它们同样也不能被改变,而实际上它们也改变了。具体见附件的“多行示例”)
  1. Sub 给已设置分散对齐且选定的字符添加底纹()
  2.     With ActiveDocument.Range(0, Len("经典文学") + 1).Find'这一句中后面如果没有添加“+1”,则不对,是否也可更改?
  3.         .Text = "经典文学"
  4.         Do While .Execute
  5.             .Parent.Shading.BackgroundPatternColor = vbRed
  6.             Exit Do
  7.         Loop
  8.     End With
  9. End Sub
复制代码


目前出错情况

目前出错情况

想要的效果

想要的效果
多行示例情况.jpg

4文件.zip

22.05 KB, 下载次数: 0

源文件、效果文件、疑问文件、多行文件

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-21 20:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
似乎已经解决了问题:先选择要添加底纹的字符,再执行下面代码:
  1.     Selection.Shading.Texture = wdTextureNone
  2.     Selection.Shading.ForegroundPatternColor = wdColorAutomatic
  3.     Selection.Shading.BackgroundPatternColor = wdColorRed
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-21 21:14 | 显示全部楼层
本帖最后由 chenlifeng123 于 2018-4-21 21:29 编辑

敬补声明:
         发此贴本是我今天下午向某网站一位技高德重之人有偿请教,如果他帮助解决了,我答应付费300元,只是对方正在乘坐交通工具,一时不方便,所以没有即使帮助我。我个人由于着急,因此一刻不歇地尝试解决方法,没有想到从向老师提问到解决问题不到3个小时,这么快就采用录制宏的办法解决了(以前也录制过宏未解决),因此我即刻告诉了这位老师,以免他再次为我费神费力。但缘份也许如此,老师即刻回复我不要再骚扰他,并删除了我的好友。对此我表示遗憾。
          同时申明:我不是那种因钱而故意为之的人,以前有偿请教过罗刚君罗老师、程传魏程老师、小富办公、及好几个一时记不起名字的老师,都不止有偿服务一次,最高的一次有偿请教费用高达2000元。
          其中有一个老师答应给我做一个300秒内读取全盘文件的程序(反正我认为很复杂、具体要求不少),结果他用的时间是翻倍了,他谦虚说我可以不用买单,因为他没有达到我的要求,但我尊重他的劳动和对我的尊重,还是兑现了承诺,给付了事先谈好的300元(具体数目忘记,但至少是300);再有一例,山东滨州一个老师我同样有偿请教过多次,他非常热心、帮助我不少,我也想着回报他,有一次他刚出生几个月的小孩因病需要购买北京的药物,恰巧我当时在北京,因此我主动为他购买了药品快递过去,没有收取分文。我所说的都是有名有姓可以核实之人,没有提及名字的老师如果看到此帖子,相信看到后一定知道是我说的是他。
         当然我也无常请教了很多老师,他们的关心让我一辈子难忘,其中有老家可能在江西、现已退休且有一段时间专门研究验证码的老师、我和他添加了微信,偈有联系,出于尊重,我并没有打探他的个人隐私;还有一个可能姓刘的年轻小伙,平时工作负责半夜看守公司供电设备,他恰好半夜有空,为我付出了太多,我也不知道如何报答他;此外说得出的还有迁、二点、胖哥、太阳系、相禹、简单一点李老师、西西、招尸墓响、雪儿、天南地北、弦月(已过世)、开心遥等七仙女、八大仙等无数老师无偿帮助过我。我真的很感谢他们的付出。
          在此再次感谢论坛所有的老师,恭祝大家生活过得越来越好。



TA的精华主题

TA的得分主题

发表于 2018-4-22 01:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主,不必花钱解决问题。现在,论坛有无数高人,最常驻的是 杜先生/老师(duquancai),免费解答。
就你的主题而言,只须一次手动即可解决!(格式菜单/边框和底纹/底纹/某色)
但如果对于未选定且已设置分散对齐的文字想添加底纹的话(并未破坏分散对齐格式),请试用下面的宏:
  1. Sub test分散对齐添加底纹()
  2.     Dim doc As Document
  3.     Set doc = ActiveDocument
  4.     With Selection
  5.         .HomeKey unit:=wdStory
  6.         .InsertBefore Text:=vbCr
  7.         Do
  8.             .MoveEnd 1, 1
  9.             .MoveStart 1, 1
  10.             If .FitTextWidth <> 0 Then .Font.Shading.BackgroundPatternColor = wdColorBrightGreen
  11.         Loop Until .End = doc.Content.End
  12.         doc.Characters(1).Delete
  13.     End With
  14. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-22 12:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2018-4-22 01:38
楼主,不必花钱解决问题。现在,论坛有无数高人,最常驻的是 杜先生/老师(duquancai),免费解答。
就你 ...

感谢楼上的老师半夜给力的帮助和提醒,答案非常实用、速度很快;而且还提供了请教的门路,再次感谢~!

TA的精华主题

TA的得分主题

发表于 2018-4-22 15:25 | 显示全部楼层
chenlifeng123 发表于 2018-4-21 21:14
敬补声明:
         发此贴本是我今天下午向某网站一位技高德重之人有偿请教,如果他帮助解决了,我答应 ...

虽然不知道你说的是哪位,我混这里的时间也短,不过我倒是能猜到可能是谁,因为我一直看坛子里某个大V,言语行为非常嚣张,但从其他人的说法来看,技术还是很一流的,如果要对号的话,估计就是他没错了~无论如何都是品行太差,拉黑就是了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-27 22:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
iamadsl 发表于 2018-4-22 15:25
虽然不知道你说的是哪位,我混这里的时间也短,不过我倒是能猜到可能是谁,因为我一直看坛子里某个大V, ...

感谢楼上朋友的发言,我不知道是不是你说的那位,但我感觉有可能不是,我遇到的也许只是一位表达方式让人一时受不了的老师,他的人品肯定没有问题。同时上次的情况我也有不对,当时的确让我很恼火,因此在此帖子下表达了自己的情绪,这有几点不好:
          一是本论坛是用于学习的,不应该用于个人情绪表达,因此向本论坛表示歉意;
          其实大家都是萍水相逢,我不应该要求任何人这么多,因此需向这位技高的老师表示道歉;
          同时我可能疏忽了一点,就是我主动申请添加对方号码,对方不久就回复了、并询问我问题,我默认为他已经添加了我的好友,后来说到“别再骚扰”时我看到了“添加对方为好友”的提示,误以为对方删除了我,一气之下索性全部删除该聊天记录。这很可能冤枉了对方,对此表示诚挚歉意。
          不过借此平台也向该老师表达一下我的想法:凡事都有起因,苍蝇不叮无缝的蛋,自我反省才是王道。如果你说话温和一些,不要给人以技压人的感觉,那么我想谁听了都会感觉舒服;具体过程我不再说了。我发了此贴后你看到,又通过上次的好友窗口发了几条信息我,首先字里行间体现的不是用温和的语气表达和认识到自己的不足,而是兴师问罪,我当时也向你回复了歉意,可你一而再地责问,以及接下来为自己的言行辩解,并说也是为我好。请您再想想:客观上你是在付出,也是为了我好,但实际上并不能让人接受你的表达方式,你今后可以尝试去改变自己的表达方式。这段话没有责怪的意思,我只是期望和我交往的每一个人,都不因我而满怀怨恨或愧疚,而是因我而有收获和开心。最后感谢有你,祝你进步。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 03:42 , Processed in 0.024242 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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