在工作簿打开时运行的excel宏不会使用公式更新单元格

时间:2013-07-03 17:07:11

标签: excel function excel-vba vba

场景:需要创建一个从多个来源获取数据并将文本连接到几个单元格中的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)工作簿打开时是否可以运行这样的代码/宏?

1 个答案:

答案 0 :(得分:0)

看看这个解决方法(如何格式化连锁单元格):http://youtu.be/Sxwyp-pUxBk