我编写了一个代码,以根据其相邻单元格的值在单元格中应用条件格式-例如,基于A1的格式A2。但是,完成代码运行后,即使我的代码仍然可以运行,我仍然遇到运行时1004错误。
错误:运行时'1004':应用程序定义或对象定义的错误
Sub CodForAr()
Dim iSet As IconSetCondition
NumOfRows = Range("SKUs").Rows.Count + 1
With Range("SKUs")
For i = 1 To NumOfRows
Set iSet = .Cells(i, 2).FormatConditions.AddIconSetCondition
With iSet
.IconSet = IconSets(xl3Arrows)
.ReverseOrder = False
.ShowIconOnly = False
End With
With iSet.IconCriteria(2)
.Type = xlConditionValueNumber
.Operator = xlGreaterEqual
.Value = Range("SKUs").Cells(i, 1).Value
End With
With iSet.IconCriteria(3)
.Type = xlConditionValueNumber
.Operator = xlGreaterEqual
.Value = Range("SKUs").Cells(i, 1).Value
End With
Next i
End With
End Sub
实际上,我发现了麻烦的部分,它位于这一行代码中
NumOfRows = Range("SKUs").Rows.Count + 1
基本上将我的范围长度扩展到了另一个值无效的单元格,这导致了错误。但是我遇到的另一个问题是 Error cell
无论哪种原因,该代码都能正常运行,直到黄色突出显示的单元格为止。任何人都有假设吗?
先谢谢了。
答案 0 :(得分:0)
除非xl3Arrows是默认的 IconSet ,否则我不确定该如何正确执行您要执行的条件格式设置操作。
简而言之,IconSet是单数,而不是复数。
With iSet
.IconSet = IconSet(xl3Arrows)
.ReverseOrder = False
.ShowIconOnly = False
End With
我建议您通过切换VBE的“工具”,“选项”,“编辑器”,“需要变量声明”来开始使用Option Explicit,并停止使用On Error Resume Next
作为权宜之计,以绕过明显的(且易于修复的)编码错误。
在过去的37分钟里,可能已经花了很多时间将一些基本的调试方法投入实际使用。