以下代码尝试滚动一系列列并格式化每列中的最大值。
以前它已达到某一点。最有可能失败,因为它正在搜索公式中的值。
然而,现在它甚至不会在第一列成功。
我已经验证了范围对象已设置,必须找到最大值,并且我还尝试仅搜索我知道在该范围内的特定数字。
在任何情况下都会发生同样的错误。我相信错误是在
rw = rng.Find(max).row
和with
块。
下面粘贴代码,非常感谢任何帮助。
Sub testMaxRetail()
Dim max As Double
Dim rng As Range
Dim rw As Integer
Dim cell As Variant
Dim colCnt As Integer
Dim i As Integer
colCnt = 12
For i = 2 To colCnt
Set rng = Sheets("Annual").Range(Cells(1, i).Address, Cells(6000, i).Address)
'clearing old formatting
For Each cell In rng
If cell.Interior.ColorIndex = 6 And cell.Font.Bold = True Then
cell.Interior.ColorIndex = 2
cell.Font.Bold = False
End If
Next cell
max = Application.WorksheetFunction.max(Sheets("Annual").Range(Cells(1, i), Cells(6000, i)))
rw = rng.Find(max).Row
With Sheets("Annual").Cells(rw, i)
.Interior.ColorIndex = 6
.Font.Bold = True
End With
Set rng = Nothing
Next i
End Sub
答案 0 :(得分:0)
Change this:
rw = rng.Find(max).Row
for this:
rw = rng.Find(What:=max, LookIn:=xlValues).Row
In order to find formula value.
The with
statement is not causing the error.