我有一个单元格,其中包含如下内容:
="String of text that's moderately long" & YEAR(NOW()) & "."
我想知道是否有任何方法可以通过宏对部分导致字符串。例如:
String of text [that's] {moderately} <long/2013.>
其中方括号内的部分为红色,花括号内的部分为蓝色,<>内的部分带下划线。
我已经尝试过这个:
Private Sub Workbook_Open()
With Sheet1
With .Cells(8, 1).Characters(25, 9).Font
.Color = vbRed
End With
With .Cells(8, 1).Characters(34, 3).Font
.Color = vbBlack
End With
With .Cells(8, 1).Characters(37, 9).Font
.Color = vbBlue
End With
With .Cells(8, 1).Characters(47).Font
.Color = vbBlack
.Underline = True
End With
End With
End Sub
虽然它可以工作,但它似乎只在固定内容单元格上正确工作,而不是像我一样具有公式的单元格。所以,有什么想法吗?
我并不完全反对完全用 VBA 填充单元格,以防万一。
答案1
有两种方式来描述cell的内容:
- 实际内容和
- 经过计算后,电子表格评估后的明显的视觉内容。
对于字符串或固定内容,这些是相同的。但对于公式,它们完全不同。您的 VBA 代码处理的是单元格的内容 (1),而不是结果 (2)。所以,是的,您必须从公式中检索内容并将它们移动到固定内容单元格,您的 vba 格式将在其中起作用。
选项包括使用隐藏行来显示公式,使用可见行来显示实际内容。如果使用隐藏行引用来省略行号对于目标用户来说太不方便/太明显,则使用单独的工作表可能是一种替代方案。