无效的过程调用或参数 - Excel VBA切片器缓存

时间:2017-01-22 07:33:47

标签: excel-vba slicers vba excel

下面的代码可以在我的计算机上使用Excel 2013和另外两台使用Excel 2010和2016的计算机正常工作,但是它为其中一个用户在切片器部分(下面的粗体)中提供了无效的过程。

这是我第一次看到来自其他用户的此错误,并且之前已在其他报告中使用过此错误。我不知道是什么导致了这一点,因为宏在其他计算机和我的计算机上工作正常。

我该如何解决这个问题?

   Sheets("Scorecard").Select
**ActiveWorkbook.SlicerCaches("Slicer_Country").ClearManualFilter**
With ActiveWorkbook.SlicerCaches("Slicer_Resourcing_Team")
    .SlicerItems("RT1").Selected = True
    .SlicerItems("RT2").Selected = True
    .SlicerItems("RT3").Selected = True
    .SlicerItems("RT4").Selected = False
End With

1 个答案:

答案 0 :(得分:0)

以下代码适用于2个名为" Country"和" Resourcing_Team" (在工作簿中确认这是切片器的名称)。

推荐:尽量避免使用ActiveWorkbook,而是使用完全限定的对象。我在此代码" SO_1.xlsm"中使用,将其修改为您的工作簿名称。

<强>代码

Option Explicit

Sub SlicersTst()

Dim WB                      As Workbook
Dim CountrySlcrCache        As SlicerCache
Dim ResourcingSlcrCache     As SlicerCache

Set WB = Workbooks("SO_1.xlsm")
Set CountrySlcrCache = WB.SlicerCaches("Slicer_Country") '<-- set Slicer Cache to "Slicer_Country"      
CountrySlcrCache.ClearManualFilter '<-- clear manual filters

Set ResourcingSlcrCache = WB.SlicerCaches("Slicer_Resourcing_Team") '<-- set Slicer Cache to "Slicer_Resourcing_Team"
With ResourcingSlcrCache
    .SlicerItems("RT1").Selected = True
    .SlicerItems("RT2").Selected = True
    .SlicerItems("RT3").Selected = True
    .SlicerItems("RT4").Selected = False
End With

End Sub