我编写了一个Excel宏来对具有条件格式的数据进行排序和突出显示
= $ A1 = TODAY()=>使用黄色字体
当我在2007年编写并在2010年执行时,它将$ A 1 改为 6 等。 在重写2010之后它在2010年运行良好,但在2007年执行时它使用 1048572 (1024 * 1024 - 4)我猜它是某种算术溢出。
我仔细检查了源代码,这似乎没问题,在所有正确的位置都说“$ A1”。它只是没有像那里那样做。
编译器或2010使用双引号是否存在差异,其中2007使用单引号?
编辑:
Selection.FormatConditions(1).StopIfTrue = False
Cells.FormatConditions.Delete
Columns("A:S").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A1=HEUTE()"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
我把它归咎于第四行。 HEUTE()是 TODAY()
答案 0 :(得分:1)
我认为excel 2007的一些奇怪的行为:
如果使用vba设置格式条件,则设置相对于活动单元格的所有范围,因此如果C3是活动单元格,则公式中的C3将变为A1(D3 a B1)
以下内容可能有所帮助(在列(“A:S”)之后。选择)
Range("A1").Activate