【问题标题】:Invalid Procedure Call Or Argument - Excel VBA Slicer Cache无效的过程调用或参数 - Excel VBA 切片器缓存
【发布时间】:2017-01-22 07:33:46
【问题描述】:

下面的代码在我的使用 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

【问题讨论】:

    标签: excel slicers vba


    【解决方案1】:

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

    建议:尽量避免使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多