我有一个搜索特定列中粗体字符的函数。在我的案例列C中。我想要它做的是找到包含粗体字符的单元格对,然后在第一列中搜索以查看它们之间是否存在某些东西。我知道如何从那里开始处理。我只是坚持如何找到满足条件的细胞对。
这是功能:
Function FindBoldCharacters(ByVal aCell As Range) As Boolean
FindBoldCharacters = IsNull(aCell.Font.Bold)
If Not FindBoldCharacters Then FindBoldCharacters = aCell.Font.Bold
End Function
以下是在代码中调用函数的方法
For Each i In Range("C11:C300")
If FindBoldCharacters(i) = True Then
'do some stuff here'
Set s = i
s.Interior.ColorIndex = 8 '''for testing purposes'''
Else
End If
Next i
我知道它当前被调用的方式会搜索满足条件的所有单元格。我只是不知道怎么写它来停止和do something
当它满足条件两次时。此外,为了使其正常工作,它必须保留两个满足条件中的第二个,否则每对之间将存在间隙。
我想向正确的方向努力。我不一定要为我编写整段代码,但如果是这样,请解释它是如何工作的。我想了解vba,而不仅仅是实现它而忘记它。
更新
基本上这就是我想要发生的事情
答案 0 :(得分:0)
这是你想要做的事情
Option Explicit
Sub findBoldCells()
Dim cel As Range, fnd1 As Long, fnd2 As Long, i As Long, cl As Long
cl = RGB(222, 255, 255)
For Each cel In Range("C11:C300")
If cel.Font.Bold = True Then
If fnd1 = 0 Then fnd1 = cel.Row Else fnd2 = cel.Row
End If
If fnd1 > 0 And fnd2 > 0 Then 'we found 1st and 2nd cell with bold text
Range(Range("C" & fnd1), Range("C" & fnd2)).Interior.Color = cl
If fnd2 > fnd1 Then
Range("C" & fnd1).Interior.Color = vbYellow
Range("C" & fnd2).Interior.Color = vbYellow
End If
For i = fnd1 To fnd2
With Range("I" & i)
.Interior.Color = vbCyan 'check values in col I...
.Value2 = i
End With
Next
fnd1 = 0: fnd2 = 0 'prepare for next iteration
End If
Next
End Sub