-1

有没有办法编写一个excel宏,其中:

1) 在预定列表中找到匹配项

2) 将前一行的长度加粗,直到有一个空白单元格

例如,如果 A1 中的单词是 Cat 是我列表的一部分,我希望A:E该行的列加粗,但不是F因为那是一个空白单元格。

当我找到一个与我拥有的列表匹配的单词时,我发现自己不得不将数据行加粗,这非常乏味,因为我不能仅将属于该数据集的数据列加粗整行。

粗体只会从左到右。

4

1 回答 1

0

像这样设置您的电子表格
设置 然后将此代码插入到ModuleVBE ALT+F11

Sub BoldNeighbouringCells()

    Dim myList As Range
    ' your keyword list is now A2 til last row in column A
    Set myList = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row))

    Dim dataRange As Range
    ' your raw data is B2 til last row in column B
    Set dataRange = Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row))

    Dim x As Range, y As Range, i As Long
    ' iterate over both collections of data and look for matches
    For Each x In myList
        For Each y In dataRange
            ' compare names from myList against Data Keys
            If StrComp(x.Text, y.Text, vbTextCompare) = 0 Then
                ' bold match
                y.Font.Bold = True
                ' now, iterate through offset ( all columns < F (4))
                ' check if each cell is not empty then bold the text
                For i = 1 To 4
                    If Not IsEmpty(y.Offset(0, i)) Then
                        y.Offset(0, i).Font.Bold = True
                    End If
                Next i
            End If
        Next
    Next

End Sub

然后点击ALT+F8View Macros运行BoldNeighbouringCells()
如果一切顺利,你应该得到如下图所示的结果 结果

于 2013-07-19T07:19:18.023 回答