2013-09-24 115 views
0

我有一個VBA代碼,基於單元格更改數據透視表報表篩選器。更改數據透視表報表篩選器與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':

應用程序定義或對象定義的錯誤。

回答

0

在輸入數字之前,您需要將範圍(「SelectedProj」)格式設置爲字符串,或者只是簡單添加'。

+0

我也改變昏暗的行:Dim Selected_Proj作爲字符串,它沒有工作。另外 - 在數字不可行之前添加一個字符,因爲項目名稱來自數據庫。 – user2810405

+0

我重新測試了宏,我發現如果過濾器不包含您剛剛選擇的值,它會得到這個錯誤,但是如果該值在過濾器上,它將不會收到錯誤。 – Taotao

0

修剪該值將解決您的問題。

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