[英]1004 error on excel 2013 textbox VBA
我想運行一個簡單的腳本,我會進一步增強它。 昨天我在自動過濾器上也有類似的工作,但是我放錯了位置,並且很難找到解決方案。 我想使用活動的x文本框來過濾數據透視表。 我曾嘗試更改模塊的位置以及使用acitveworkbook和activesheet,但我似乎都返回了1004錯誤。 我可以確認頁面和數據透視表都在頁面上。 這是辦公室13。
Private Sub TextBox1_Change()
ActiveSheet.PivotTables("PivotTable2").PivotFields("Agency").ClearAllFilters
ActiveSheet.PivotTables("PivotTable2").PivotFields("Agency").CurrentPage = ActiveSheet.TextBox1.Text
End Sub
我相信昨天的解決方案與激活文本框有關。 但是不能完全記住。
任何幫助將非常感激。
您的子例程必須放在工作表的代碼模塊中。 我相信該錯誤正在發生,因為_Change
事件在每次擊鍵時都會觸發,因此很可能第一個擊鍵會創建一個TextBox1.Text
值,該值與該PivotField
任何PivotItems
不對應。
你可以做這樣的事情。 使用_GotFocus
事件提供輸入提示。 這子程序然后含蓄地提高TextBox1_Change
通過分配輸入值到事件TextBox1.Text
。
Private Sub TextBox1_GotFocus()
Dim str$
str = InputBox("Please enter a value", "Pivot Field filter")
TextBox1.Text = str
End Sub
我暫時禁用錯誤處理( On Error Resume Next
)來分配過濾器。 然后,我檢查是否發生了錯誤,並且您可以(可選)通知用戶他們提供了無效的條件。
Sub TextBox1_Change()
Dim pt As PivotTable
Dim fld As PivotField
Set pt = PivotTables("PivotTable2") 'Modify as needed
Set fld = pt.PivotFields("Agency")
With fld
.ClearAllFilters
On Error Resume Next
.CurrentPage = TextBox1.Text
.Orientation = xlPageField
.Position = 1
If Err.Number <> 0 Then
'you may want to include a prompt here, i.e.:
MsgBox "Invalid Filter!", vbInformation
Exit Sub
End If
On Error GoTo 0
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.