使用来自访问的公式来自动化Excel列

我有一个excel电子表格有一个公式=IF(L2=N2, IF(N2>0,TRUE, FALSE), FALSE)给我一个真或假的值。 如果我在Excel中打开这个电子表格,并按升序对它进行sorting,那么sorting是正确的。 从logging返回的macros如下所示。

 ActiveWorkbook.Worksheets("Incorrect Items").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Incorrect Items").AutoFilter.Sort.SortFields.Add _ Key:=Range("X1:X2188"), SortOn:=xlSortOnValues, Order:=xlAscending, _ DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Incorrect Items").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

当我转移到访问我有。

 With WorkSheet .AutoFilter.Sort.SortFields.Clear .AutoFilter.Sort.SortFields.add _ Key:=.range("X1:X2188"), SortOn:=0, Order:=1, DataOption:=0 With .AutoFilter.Sort .Header = 1 .MatchCase = False .Orientation = 1 .SortMethod = 1 .Apply End With End With 

代码运行良好,没有返回错误,但它似乎忽略了xlSortOnValues常量,并没有对列进行sorting。 复制和粘贴值之前sorting工作,但我想知道为什么这个工程在Excel中,而不是从访问。

xlSortOnValues在所有Excel版本中的处理方式不同,因此请确保您拥有正确的库(VBA编辑器中的对象引用)。

当从MS Access自动MS Excel和处理公式,如sorting公式的值,或从公式中复制的结果,然后计算必须设置为自动观察正确的结果的列appExcel.Application.Calculation = -4105