使用来自访问的公式自动化Excel列
我有一个excel电子表格,它有一个公式=IF(L2=N2, IF(N2>0,TRUE, FALSE), FALSE)
,它给了我一个True或False值。 如果我在Excel中打开这个电子表格,并按照升序对它进行排序,它会正确排序。 从记录返回的宏如下。
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
常量并且不对列进行排序。 复制和粘贴值之前排序工作,但我想知道为什么这个工程在Excel中,而不是从访问。
xlSortOnValues
在所有Excel版本中的处理方式不同,因此请确保您拥有正确的库(VBA编辑器中的对象引用)。
当从MS Access中自动化MS Excel并处理公式时,例如对具有从公式创建的值的列进行排序或复制公式中的和值结果时,必须将计算设置为自动以观察正确的结果appExcel.Application.Calculation = -4105
。
上一篇: Automating the sort of an excel column with formulas from access