Excel 使用VBA更改透视表报表筛选器

Excel 使用VBA更改透视表报表筛选器,excel,pivot-table,vba,Excel,Pivot Table,Vba,我有一个VBA代码,它根据单元格更改透视表报表过滤器 对于字母数字的输入,这一切都可以正常工作。当输入是一个数字时,我得到一个错误 代码如下: Sub ProjSelect_PivotsUpdate() Dim Selected_Proj Selected_Proj = Worksheets("Parameters").Range("SelectedProj") ActiveSheet.PivotTables("PivotTable1").PivotFields("Pr

我有一个VBA代码,它根据单元格更改透视表报表过滤器

对于字母数字的输入,这一切都可以正常工作。当输入是一个数字时,我得到一个错误

代码如下:

Sub ProjSelect_PivotsUpdate()
    Dim Selected_Proj

    Selected_Proj = Worksheets("Parameters").Range("SelectedProj")
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Project").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Project").CurrentPage = _
    Selected_Proj
End Sub
以下是错误代码:

运行时错误“1004”:

应用程序定义或对象定义错误


您需要将范围(“SelectedProj”)格式设置为字符串,或者在输入数字之前只需简单地添加即可。

修剪该值将解决您的问题

Sub ProjSelect_PivotsUpdate()
    Dim Selected_Proj

    Selected_Proj = Worksheets("Parameters").Range("SelectedProj")
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Project").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Project").CurrentPage =  Trim(Selected_Proj)
End Sub

我还将dim行更改为:dim Selected_Proj作为字符串,但它不起作用。另外-在数字之前添加字符是不可行的,因为项目名称来自数据库。我重新测试了宏,发现如果筛选器不包含您刚才选择的值,则会出现此错误,但如果值位于筛选器上,则不会出现错误。