excel如何使用vba设置单元格中个别字体自动加粗?

目标:实现单元格部分内容自动加粗。困惑:如图中的单元格 产品: √桌子 椅子 柜子 架子 床铺 地板 这是Excel表中的一个单元格。这个单元格的内容是用IF语句判定其他位置的条件而自动产生的。 (例如,其他的条件是A,这个单元格内容就变成“√桌子 椅子 柜子 架子 床铺 地板 ”;其它的条件是B,这个单元格内容就变成“桌子 √椅子 柜子 架子 床铺 地板 ”) 现在,我希望达到的效果是:不仅根据条件内容会自动打勾,而且打勾的内容会自动加粗。 要注意的是,这个单元格经过合并,但不能拆分。
例如:
单元格A的值变为“桌子”,单元格B的“桌子”前打勾,并且“√桌子”加粗;而当单元格A的值变为“iphone”,单元格B的“iphone”(现在假设单元格B有“iphone”这个字数不同的选项)变为“√iphone”且加粗,同时“√桌子”变回不加粗的状态?

Sheet  change 代码:放到 Sheet 代码区

Private Sub Worksheet_Change(ByVal Target As Range)
 Target.Font.Bold = False
 Target.Characters(Start:=InStr(1, Target, "√"), Length:=3).Font.Bold = True
End Sub

追问

谢谢你的回答!虽然我不懂vba,只是觉得只有vba能实现我的功能。
我有一点想追问:实际表格中,打勾后面的文字内容字数是不一样的。如果这样,是否需要添加if语句?还有,这个代码是否需要填写单元格位置之类的信息?

追答

这个 代码 作用 是只要表内 任何单元格内容 有 变更 就执行加粗,
当然 也可以设置 制定某一范围内的单元格,或者某一个单元格,只是你也没说 这个范围是什么

打勾 后面的文字字数不一样 ,可以改下代码自动判断,
你一次性说清楚,一起给你改

还有一个 问题:
VBA 加粗只能加粗文本, 对公式结果 的内容 是没法加粗的。。。。。 就是说单元格内是数值,不能是公式

追问

如果不支持公式,我的设计思路就要改变了。
请问:vba怎么实现,某个单元格的值改变(通过“数据有效性-序列”改变值),导致另一个单元格的值改变,并且部分文字打勾?

追答

也可以做,没空写

温馨提示:答案为网友推荐,仅供参考
相似回答