Excel宏适用于2007或2010

时间:2014-03-04 12:06:27

标签: excel excel-vba ms-office vba

我编写了一个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()

1 个答案:

答案 0 :(得分:1)

我认为excel 2007的一些奇怪的行为:

如果使用vba设置格式条件,则设置相对于活动单元格的所有范围,因此如果C3是活动单元格,则公式中的C3将变为A1(D3 a B1)

以下内容可能有所帮助(在列(“A:S”)之后。选择)

Range("A1").Activate