我有一些代码,这些代码首先从ODBC刷新一组数据,然后刷新与该数据链接的几个枢轴。
枢轴需要有一个自定义排序顺序,以便将数据以“正确”的顺序显示给客户。
排序顺序需要由客户定义,并且可以随时更改。为此,我在设置工作表中添加了两个表,其中包含组名和帐户代码。然后,他们可以将这些表中的行按他们想要的顺序排列。
然后,我需要将这些表中的数据添加到可以在枢轴上设置的排序列表中。
我使用Application.AddCustomList
将自定义列表添加到Excel中。如果我只尝试添加一个列表,它就可以正常工作,但是当它试图添加第二个列表时,它会出现以下错误:
对象'AddCustomList‘的方法'_Application’失败“。
以下是代码:
' Deletes old sort orders
On Error Resume Next
Dim i As Long
For i = 1 To Application.CustomListCount
Application.DeleteCustomList (i)
Next i
On Error GoTo 0
' Adds custom sort for customers to appplication
Application.AddCustomList ListArray:=Range("tblSortList[Account Code]")
' Gets the number of the custom sorts
CustomerSortNo = Application.CustomListCount
' Adds custom sort for groups to appplication
Application.AddCustomList ListArray:=Range("tblGroupSort[Group]")
' Gets the number of the categorysort
CategorySortNo = Application.CustomListCount
' Sorts the pivots
Pt.SortUsingCustomLists = True
PTTotals.SortUsingCustomLists = True
PTYearGroup.SortUsingCustomLists = True
PTGroupAvg.SortUsingCustomLists = True
Pt.PivotFields("Account Code").DataRange.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=CustomerSortNo + 1 ' +1 as No Calcualtion is number 1.
PTTotals.PivotFields("Account Code").DataRange.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=CustomerSortNo + 1 ' +1 as No Calcualtion is number 1
Pt.PivotFields("Group").DataRange.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=CategorySortNo + 1 ' +1 as No Calcualtion is number 1.
PTTotals.PivotFields("Group").DataRange.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=CategorySortNo + 1 ' +1 as No Calcualtion is number 1
PTYearGroup.PivotFields("Group").DataRange.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=CategorySortNo + 1 ' +1 as No Calcualtion is number 1
PTGroupAvg.PivotFields("Group").DataRange.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=CategorySortNo + 1 ' +1 as No Calcualtion is number 1
当前,它将在行上失败:Application.AddCustomList ListArray:=Range("tblGroupSort[Group]")
如果我重新排序代码,并添加组排序列表,它将运行良好和错误的帐户代码列表。
我已经尝试将自定义列表添加到每个子列表中,但是没有什么不同。
如何添加两个范围列表?
发布于 2019-05-31 09:33:37
分配和使用自定义列表的代码可以工作,但是循环删除它们,不起作用。
您必须向下执行列表以捕获每个元素(如果删除了一个元素,则对更改编号):
For i = Application.CustomListCount To 1 Step -1
Application.DeleteCustomList (i)
Next i
https://stackoverflow.com/questions/56389749
复制相似问题