场景:需要创建一个从多个来源获取数据并将文本连接到几个单元格中的Excel,以便用作报告的一部分。
目标:更好地格式化最终输出单元格。更准确地说,希望将输出单元格的几个关键字变为粗体。
使用的方法 :(此处为了保持精确而简化) 单页练习册。
Cell A1 = "Output from DataSource1 contains keyword1 "
Cell A2 = "Output from DataSource2 contains keyword2"
Cell A3 = "=CONCATENATE(A1, A2)"
Cell A4 = "Output from DataSource1 contains keyword1 Output from DataSource2 contains
keyword2“(在A3中填充的实际文本)
按AltF11并在“ThisWorkbook”
中添加以下代码Sub Workbook_Open()
Dim i, l As Integer
Dim Keywords(1 To 2) As String
Dim N As Long
Keywords(1) = "keyword1"
Keywords(2) = "keyword2"
For N = LBound(Keywords) To UBound(Keywords)
i = InStr(1, Range("A3"), Keywords(N), vbTextCompare)
l = Len(Keywords(N))
If i > 0 Then
With Range("A3").Characters(Start:=i, Length:=l).Font
.FontStyle = "Bold"
End With
End If
Next N
For N = LBound(Keywords) To UBound(Keywords)
i = InStr(1, Range("A4"), Keywords(N), vbTextCompare)
l = Len(Keywords(N))
If i > 0 Then
With Range("A4").Characters(Start:=i, Length:=l).Font
.FontStyle = "Bold"
End With
End If
Next N
End Sub
观察: Cell A4中的关键字(简单文本)变得大胆。单元格A3中的关键字不会变粗。
预期: Cell A3中的关键字应该变得大胆。这是主要要求。
问题: (1)当单元格内容来自公式时,是否可以将单元格的几个关键字标记为粗体(让我们说两个其他单元格的串联)? (2)工作簿打开时是否可以运行这样的代码/宏?