我正在自动测试套件中的特定零件。其中一项包括将数据填充到特定颜色的excel单元中。我可以使用UsedRange.Find代替for循环迭代器来搜索该颜色的单元格吗?我真的不想遍历每个单元格并执行cell.interior.colorindex,而是一个最佳查询。我使用的语言是python,因为我在测试工具IDE中,所以我无法访问xlrd。这就是全部COM。
答案 0 :(得分:0)
更新!
是的,您可以使用 sheets(..).usedrange.find ...
!
我今天无法重现sheets(..).usedrange.find
的结果!
以下(精简和更正)的vba代码示例:
Option Explicit
Sub Find_Yellow()
Dim firstFind As Range
Dim iCt As Integer
For iCt = 1 To 2
If iCt = 1 Then Range("C15").Interior.Color = -4142 'xlNone = -4142
If iCt = 2 Then Range("C15").Interior.Color = 65535 'vbyellow = 65535
Call SetInteriorSearchColor(65535) 'vbyellow = 65535
Set firstFind = Nothing
On Error Resume Next
Set firstFind = Sheets(1).Cells.Find("", Cells(1, 1), -4123, 2, 1, 1, False, , True)
On Error GoTo 0
If firstFind Is Nothing Then
Debug.Print "round " & iCt & ": Yellow filled cell NOT found!"
Else
Debug.Print "round " & iCt & ": Yellow filled cell found at " & firstFind.Address & "!"
End If
Next iCt
End Sub
Sub SetInteriorSearchColor(IscColor As Long)
With Application.FindFormat.Interior
.PatternColorIndex = xlAutomatic
.Color = IscColor 'vbyellow = 65535 'orange = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
立即窗口
round 1: Yellow filled cell NOT found!
round 2: Yellow filled cell found at $C$15!