有没有办法编写一个excel宏,其中:
1) 在预定列表中找到匹配项
2) 将前一行的长度加粗,直到有一个空白单元格
例如,如果 A1 中的单词是 Cat 是我列表的一部分,我希望A:E
该行的列加粗,但不是F
因为那是一个空白单元格。
当我找到一个与我拥有的列表匹配的单词时,我发现自己不得不将数据行加粗,这非常乏味,因为我不能仅将属于该数据集的数据列加粗整行。
粗体只会从左到右。
像这样设置您的电子表格
然后将此代码插入到Module
VBE 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+F8并View Macros
运行BoldNeighbouringCells()
宏
如果一切顺利,你应该得到如下图所示的结果