如何在Excel中为包含**的单元格设置加粗并移除所有*
Excel 两项操作实现方案:加粗含连续星号单元格 + 移除单个星号
一、将包含连续星号(**)的单元格设置为加粗格式
方法1:手动操作(适合小范围数据)
- 选中目标单元格区域
- 按
Ctrl + F打开查找窗口,点击「选项」展开更多设置 - 在「查找内容」栏输入
**,点击「查找全部」 - 按
Ctrl + A选中所有匹配结果,再按Ctrl + B(或点击工具栏加粗按钮)完成格式设置
方法2:VBA脚本(适合批量/大范围数据)
按Alt + F11打开VBA编辑器,插入模块后粘贴以下代码,运行即可:
Sub BoldCellsWithDoubleAsterisk() Dim rng As Range Dim cell As Range Set rng = Application.InputBox("请选择需要处理的单元格区域", Type:=8) For Each cell In rng If InStr(cell.Value, "**") > 0 Then cell.Font.Bold = True End If Next cell End Sub
二、移除表格中所有单个星号(*)
注意:需区分单个星号与连续星号,避免误删**中的星号。
方法1:手动替换(简单高效)
- 选中目标单元格区域
- 按
Ctrl + H打开替换窗口,点击「选项」 - 在「查找内容」栏输入
~*(~是通配符转义符,用于匹配真实的*字符) - 「替换为」栏留空,点击「全部替换」即可移除所有单个星号
方法2:VBA脚本(精准匹配单个星号)
如果需要更精准地排除连续星号中的单个星号,可使用正则表达式实现:
Sub RemoveSingleAsterisks() Dim rng As Range Dim cell As Range Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") regEx.Global = True regEx.Pattern = "(?<!\*)\*(?!\*)" ' 匹配前后都不是星号的单个* Set rng = Application.InputBox("请选择需要处理的单元格区域", Type:=8) For Each cell In rng If cell.Value <> "" Then cell.Value = regEx.Replace(cell.Value, "") End If Next cell End Sub
内容的提问来源于stack exchange,提问作者user19560886
相关产品推荐
相关产品推荐

