首页 > 解决方案 > 为什么在一个单元格的一部分中更改颜色或粗体不再起作用?

问题描述

Excel 中,可以更改部分单元格的字体颜色。

我试过下面的代码。它不适用于更新的Excel 365 for value(不是公式),

Set ce=cells(5,3)
ce.Characters(1, 5).Font.Color = vbBlue

它应该改变单元格中前 5 个字符的颜色,但它会改变所有单元格内容的颜色。即使是交互式的,它也不起作用。选择单元格内的一块,按一种颜色。退出单元格时,它会为所有单元格内容着色(与 VBA 代码相同)

为什么?

更新:这是我的错。一个人只能为文本的一部分着色,而不是数字。使用文本,VBA 与否都可以正常工作

标签: excelvba

解决方案


经过评论中的讨论,Excel 接受部分颜色单元格作为文本内容,但不接受数字内容。

所以放入ABCDEFG一个活动单元格。下面的代码将前 5 个字符涂成红色。交互式地它也可以工作。

ActiveCell.Characters(1, 5).Font.Color = vbRed

现在放入1234567一个活动单元格。下面的代码全部涂成红色。交互地颜色保持不变。

ActiveCell.NumberFormat = "@"   // Even if you format as text doesn't work
ActiveCell.Characters(1, 5).Font.Color = vbRed

如果您只是在B前面加上一个相同的代码1234567...


推荐阅读