我还有另外一个与我的怨恨问题相似的问题。我在VBA中有一个函数,它找到与活动单元格的日期和单元格颜色匹配的单元格,在找到下一个匹配单元格后,它转到列H中的相应单元格,并将其突出显示为青色。这正是我想要的,但我每次都要点击运行宏。我希望该函数适用于所有匹配的单元格。我正在考虑使用Do Until循环,找到@ http://www.excel-easy.com/vba/examples/do-until-loop.html,但要做到这一点,我需要知道匹配单元的数量,以使循环停止。
我的工作代码:
Sub Test1()
'
' Test1 Macro
'
'
Dim CellColor As Variant
Dim SearchDate As String, FoundAt As String
CellColor = Range("B" & ActiveCell.Row).Interior.Color
SearchDate = Range("B" & ActiveCell.Row).NumberFormat
Range("B" & ActiveCell.Row).Select
Application.FindFormat.Clear
Application.FindFormat.NumberFormat = SearchDate
Application.FindFormat.Interior.Color = CellColor
Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
, SearchFormat:=True).Activate
End Sub
我正在考虑使用的循环代码在上面的链接中找到:
Dim i As Integer
i = 1
Do Until i > 6
Cells(i, 1).Value = 20
i = i + 1
Loop
我有这个CountIF代码:
Dim cellCount As Integer
cellCount = Application.WorksheetFunction.CountIf(Range("B1:B30"), "7/22/2016") ‘Count matching
MsgBox cellCount ‘test to see if count works
但是有两个问题是错的。问题一,我必须在代码中手动输入日期“7/22/2016”而不是使用变量“SearchDate”。问题二是它只搜索日期,而不是搜索日期的单元格颜色我的电子表格。
所以我的问题就是这一切。如何获得满足活动单元格的日期和颜色值的日期数量,并将该数字转移到要在循环中使用的变量?
如果有更有效的方法来完成所有这些,请告诉我。非常感谢提前!!!
参考图片:
答案 0 :(得分:0)
如果我理解你的问题,那么这就是你要找的东西
"
答案 1 :(得分:0)
下一个函数将计算B列中所有匹配的单元格。 它不会突出显示任何细胞。您必须自己添加此部分。
为了使用它,只需在代码中添加以下内容:
Dim x As Integer
x = countMatchingCells
功能:
Function countMatchingCells() As Integer
Dim CellColor As Variant
Dim SearchDate As String, FoundAt As String
Dim i As Integer
Dim counter As Integer
CellColor = Range("B" & ActiveCell.Row).Interior.Color
SearchDate = Range("B" & ActiveCell.Row).NumberFormat
counter = 0
'assuming we are working on sheet1:
For i = 1 To Sheets(1).Cells(Sheets(1).Rows.Count, 2).End(xlUp).Row
If Cells(i, 2).Interior.Color = CellColor And _
Cells(i, 2).NumberFormat = SearchDate Then
countMatchingCells = countMatchingCells + 1
'you can write more code here, for example if you want to highlight cells once you found a match
End If
Next i
End Function