excel中读取D列A行B行,记为1、2行,如若1行为加粗,2行为不加粗,则继续向下读取C、D两行,记为1、2行重复判断,如出现1行为不加粗,2行加粗,则1行所在行高亮黄色标记,以2行所在行为起点重新向下读取2行,记为1、2行,循环上述过程
时间: 2024-05-01 19:23:01 浏览: 93
这个问题可以通过 VBA 宏实现。以下是一个简单的示例代码:
```vb
Sub CheckRows()
Dim row1 As Range, row2 As Range
Dim bold1 As Boolean, bold2 As Boolean
Dim i As Integer
Set row1 = Range("A1:D1")
Set row2 = Range("A2:D2")
Do While Not IsEmpty(row1)
bold1 = False
bold2 = False
For i = 1 To row1.Cells.Count
If row1.Cells(i).Font.Bold Then
bold1 = True
Exit For
End If
Next i
For i = 1 To row2.Cells.Count
If row2.Cells(i).Font.Bold Then
bold2 = True
Exit For
End If
Next i
If Not bold1 And bold2 Then
row1.EntireRow.Interior.ColorIndex = 6 '黄色
Set row1 = Range(row2.Cells(1), row2.Cells(row2.Cells.Count + 1))
Set row2 = Range(row1.Offset(1, 0), row1.Offset(2, 0))
Else
Set row1 = row1.Offset(1, 0)
Set row2 = row2.Offset(1, 0)
End If
Loop
End Sub
```
该代码会首先读取 A 列到 D 列的第 1 行和第 2 行,记录为 `row1` 和 `row2`。然后循环读取这两行,如果第 1 行加粗,标记为 `bold1` 为真,如果第 2 行加粗,标记为 `bold2` 为真。如果第 1 行不加粗并且第 2 行加粗,则将第 1 行所在行的背景标记为黄色,并重新设置 `row1` 和 `row2` 为第 2 行和第 3 行。如果不符合条件,则将 `row1` 和 `row2` 分别向下移动一行。
请注意,该代码仅供参考,可能需要适当调整以适应您的实际需求。
阅读全文