excel - 在文本后添加格式化符号,保留现有文本的字符格式

标签 excel vba string formatting

我想在单元格中的现有文本后插入一个红色勾号(或向下箭头)。

如何插入字符并保留单元格中预先存在的字符格式?我只在这些单元格内的某些单词上加粗、下划线或着色。

通常建议的代码将原始单元格内容的所有自定义字符格式恢复为单元格字体格式。

ActiveCell.FormulaR1C1 = ActiveCell & " P "

最佳答案

已编辑:使用ActiveCell.ValueActiveCell.Formula 确实会改变您之前拥有的任何特殊格式(我最初的帖子忽略了这一点) .但是,正如您的研究间接显示的那样,您可以使用 character.insert 更改文本,但您需要知道插入位置的字符长度,以避免更改您的自定义格式。

试试这个而不是值或公式设置。

ActiveCell.Characters(ActiveCell.Characters.Count + 1, 1).Insert (" P ")

然后您继续使用类似的方法更新倒数第二个字符(这实际上是在最后一个字符之前编辑 1 个字符)。

With ActiveCell.Characters(ActiveCell.Characters.Count -1, Length:=1).Font
        .Name = "Wingdings 2"
        .FontStyle = "Bold"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
End With

关于excel - 在文本后添加格式化符号,保留现有文本的字符格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261166/

相关文章:

java - 无法使用 java 中的 setCellValue api 更新单元格值

java - 正则表达式java从属性中读取

javascript - myString.replace( VARIABLE, "") ...... 但在全局范围内

excel - 无法从 url 中提取 id

java - SimpleDateFormat 是否有格式字符串来获取毫秒日期时间值而不是人类可读的形式?

excel - 将公式向下复制 x 行

html - 通过 VBA 更改 Amazon ComboBox

vba - 文件选择器,如何指定文件类型?

vba - 在 Outlook 邮件内容上捕获右键单击的文本

vba - Outlook VBA 宏不修改电子邮件