Ich möchte Pivot-Tabelle filtern inputbox verwenden. Ich muss nur die vom Benutzer eingegebenen Werte sichtbar machen und andere Werte müssen unsichtbar sein. Das Pivot-Feld "Number" befindet sich in Zeilenbeschriftungen. Ich habe Schleife im Code verwendet. So kann der Benutzer mehrere Werte eingeben. Ich habe den folgenden Code verwendet, aber das Problem ist, dass es nicht funktioniert und Fehler "Index außerhalb des gültigen Bereichs" angezeigt wird. Hilf mirWie Pivot-Tabelle filtern, indem inputbox in Excel VBA
Sub FilterRP()
Dim ws As Worksheet
Dim str1 As Variant
Dim arr1() As String
Dim i As Long
Set ws = Sheets("Main")
i = 1
Do
str1 = Application.InputBox("Select one Number")
ReDim Preserve arr1(i)
arr1(i) = str1
i = i + 1
Loop While (str1 <> vbNullString) And (str1 <> False)
ws.PivotTables("MainTable").PivotFields("Number").ClearAllFilters
ws.PivotTables("MainTable").PivotFields("Number").PivotItems(arr1(i)).Visible = True
End Sub
ReDim ist ineffizient erhalten, wie Sie neue Arrays am Ende die Schaffung und Informationen zu bewältigen. Ist es möglich, eine "," getrennte Zeichenfolge aus der Inputbox zu lesen und Split zu verwenden, um Ihr Array zu erstellen? Ich bin sicher, dass mich jemand korrigieren wird, wenn das weniger effizient ist. Schleifen Sie dann das Array, indem Sie die pivotable sichtbaren Elemente = auf die Array-Elemente setzen. – QHarr
Auf welcher Zeile erhalten Sie den Fehler? – ashleedawg
@ashleedawg In der letzten Zeile von 'PivotItems (arr1 (i)) Sichtbar' – Deepak