Note: The other languages of the website are Google-translated. Back to English

Come collegare il filtro della tabella pivot a una determinata cella in Excel?

Se desideri collegare un filtro tabella pivot a una determinata cella e filtrare la tabella pivot in base al valore della cella, il metodo in questo articolo può aiutarti.

Collega il filtro della tabella pivot a una determinata cella con codice VBA


Collega il filtro della tabella pivot a una determinata cella con codice VBA

La tabella pivot a cui collegherai la sua funzione di filtro a un valore di cella dovrebbe includere un campo di filtro (il nome del campo di filtro assume un ruolo importante nel seguente codice VBA).

Prendi la tabella pivot di seguito come esempio, viene chiamato il campo filtro nella tabella pivot Categoriae include due valori "di spese" e "SALDI". Dopo aver collegato il filtro Tabella pivot a una cella, i valori della cella che applicherai al filtro Tabella pivot dovrebbero essere "Spese" e "Vendite".

1. Seleziona la cella (qui seleziono la cella H6) che collegherai alla funzione di filtro della tabella pivot e inserisci uno dei valori del filtro nella cella in anticipo.

2. Apri il foglio di lavoro che contiene la tabella pivot che collegherai alla cella. Fare clic con il pulsante destro del mouse sulla scheda del foglio e selezionare Visualizza codice dal menu contestuale. Vedi screenshot:

3. Nel Microsoft Visual Basic, Applications Edition finestra, copia sotto il codice VBA nella finestra del codice.

Codice VBA: collega il filtro della tabella pivot a una determinata cella

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Note:

1) "Sheet1"È il nome del foglio di lavoro aperto.
2) "Tabella pivot 2"È il nome della tabella pivot a cui collegherai la sua funzione di filtro a una cella.
3) Il campo di filtro nella tabella pivot si chiama "Categoria".
4) La cella di riferimento è H6. È possibile modificare questi valori delle variabili in base alle proprie esigenze.

4. premi il altro + Q i tasti per chiudere il file Microsoft Visual Basic, Applications Edition finestra.

Ora la funzione di filtro della tabella pivot è collegata alla cella H6.

Aggiorna la cella H6, quindi i dati corrispondenti nella tabella pivot vengono filtrati in base al valore esistente. Vedi screenshot:

Quando si modifica il valore della cella, i dati filtrati nella tabella pivot verranno modificati automaticamente. Vedi screenshot:


Seleziona facilmente intere righe in base al valore della cella in una colonna certian:

L' Seleziona celle specifiche utilità di Kutools for Excel può aiutarti a selezionare rapidamente intere righe in base al valore della cella in una colonna certian in Excel come mostrato nell'immagine sottostante. Dopo aver selezionato tutte le righe in base al valore della cella, puoi spostarle o copiarle manualmente in una nuova posizione di cui hai bisogno in Excel.
Scaricalo e provalo ora! (30-giorni di percorso gratuito)


Articoli correlati:


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (36)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
come farlo su mul;tiple campo poiché nel codice c'è solo un target
Questo commento è stato fatto dal moderatore sul sito
Hi Frank
Mi dispiace non poterti aiutare in questo.
Questo commento è stato fatto dal moderatore sul sito
Cosa succede se la cella collegata alla tabella pivot, in questo caso H6, si trova su un altro foglio di lavoro? Come cambia il codice?
Questo commento è stato fatto dal moderatore sul sito
cosa succede se ho più di 1 tabella pivot e mi collego a 1 cella. Come devo modificare il codice?
Questo commento è stato fatto dal moderatore sul sito
Ciao Jeri,
Mi dispiace non poterti aiutare con quello. Benvenuto per postare qualsiasi domanda nel nostro forum: https://www.extendoffice.com/forum.html per ottenere più supporto per Excel dal nostro professionista di Excel o da altri fan di Excel.
Questo commento è stato fatto dal moderatore sul sito
trovali e modificali in Array(), Intersect(), Worksheets(), PivotFields()

Tabella pivot 1
Tabella pivot 2
Tabella pivot 3
Tabella pivot 4
H1
NomeFoglio
Nome campo




Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xPTabled As PivotTable
    Dim xPFiled As PivotField
    Dim xStr As String
    On Error Resume Next
    '리스트 만들기
    Dim listArray() As Variant
    listArray = Array("PivotTable1", "PivotTable2", "PivotTable3", "PivotTable4")
    If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    For i = 0 To UBound(listArray)
        Set xPTable = Worksheets("SheetName").PivotTables(listArray(i))
        Set xPFile = xPTable.PivotFields("FieldName")
        'MsgBox (listArray(i))
        xStr = Target.Text
        xPFile.ClearAllFilters
        xPFile.CurrentPage = xStr
    Next
        Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Boa tarde...! Ótima publicação, como faço para utilizar o filtro em duas o mais tabelas dinâmicas...? Agradeço desde ja.

Buon pomeriggio...! Ottima pubblicazione, come si usa il filtro in due o più tabelle pivot...? Grazie in anticipo.
Questo commento è stato fatto dal moderatore sul sito
Ciao Gilmar Alves,
Mi dispiace non poterti aiutare con quello. Benvenuto per postare qualsiasi domanda nel nostro forum: https://www.extendoffice.com/forum.html per ottenere più supporto per Excel dal nostro professionista di Excel o da altri fan di Excel.
Questo commento è stato fatto dal moderatore sul sito
Qualcuno ha capito la domanda di collegamento di tabelle pivot multiple?
Questo commento è stato fatto dal moderatore sul sito
Modifica i valori in Array(), Worksheets() e Intersect()



**Trova questi e cambiali**
NomeFoglio
E1
Tabella pivot 1
Tabella pivot 2
Tabella pivot 3




Private Sub Worksheet_Change (ByVal Target As Range)
'Aggiorna entro Extendoffice 20180702
Dim xPTable come tabella pivot
Dim xPFile come campo pivot

Dim xPTabled come tabella pivot
Dim xPFiled come campo pivot

Dim xStr come stringa



On Error Resume Next

'리스트 만들기
Dim listArray() come variante
listArray = Array("Tabella pivot1", "Tabella pivot2", "Tabella pivot3")



Se Intersect(Target, Range("E1")) non è nulla, allora Exit Sub
Application.ScreenUpdating = False

For i = 0 A UBound(listArray)

Imposta xPTable = Fogli di lavoro("NomeFoglio").TabellePivot(listArray(i))
Imposta xPFile = xPTable.PivotFields ("Company_ID")

xStr = Target.Text
xPFile.ClearAllFilters
xPFile.PaginaCorrente = xStr



Successiva

Application.ScreenUpdating = True



End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao, sto provando a fare lo stesso esempio per far in modo che il filtro della pivot si metta sul valore della cella,
non riesco a farla funzionare.

Quale passaggio manca nella descrizione sopra?
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Hai ricevuto qualche messaggio di errore? Ho bisogno di sapere più specifico sul tuo problema, come la tua versione di Excel. E se non ti dispiace, prova a creare i tuoi dati in una nuova cartella di lavoro e riprova, oppure fai uno screenshot dei tuoi dati e caricalo qui.
Questo commento è stato fatto dal moderatore sul sito
Ciao,

Ho provato a farlo funzionare per il filtro della colonna ma non sembra funzionare. Ho bisogno di un altro codice per quello?

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao Justin,
Hai ricevuto qualche messaggio di errore? Ho bisogno di sapere più specifico sul tuo problema.
Prima di applicare il codice, non dimenticare di modificare il "nome del foglio""nome della tabella pivot""nome del filtro della tabella pivot" e il cella vuoi filtrare la tabella pivot in base a (vedi sceenshot).
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/4.png
Questo commento è stato fatto dal moderatore sul sito
Ciao Cristallo,

Grazie per l'aiuto. Il problema è che la funzione non sta facendo nulla per qualche motivo. Qualche chiarimento:

Nome pivot: Order_Comp_B2C
Nome foglio: foglio di calcolo
Nome del filtro: numero della settimana (ho cambiato questo nome da quello che era "Settimana di spedizione n." nel file di dati)
Cella da modificare: O26 e O27 (questo dovrebbe rientrare nell'intervallo)

In questo pivot, sto cercando di modificare il filtro per le colonne, non ho nulla nell'area del filtro nel menu Campi tabella pivot.

il mio codice è:

Private Sub Worksheet_Change (ByVal Target As Range)
'Aggiorna entro Extendoffice 20180702
Dim xPTable come tabella pivot
Dim xPFile come campo pivot
Dim xStr come stringa
On Error Resume Next
Se Intersect(Target, Range("O26")) non è nulla, allora esci da sub
Application.ScreenUpdating = False
Imposta xPTable = Fogli di lavoro ("Foglio di calcolo"). Tabelle pivot ("Comp._ordine_B2C")
Imposta xPFile = xPTable.PivotFields ("Numero settimana")
xStr = Target.Text
xPFile.ClearAllFilters
xPFile.PaginaCorrente = xStr
Application.ScreenUpdating = True
End Sub

Grazie,

Justin
Questo commento è stato fatto dal moderatore sul sito
Ciao Justin Teeuw,
Ho cambiato il Nome pivot, nome del foglio, nome del filtro e cellula da cambiare alle condizioni che hai menzionato sopra e ho provato il codice VBA che hai fornito, nel mio caso funziona bene. Vedere la seguente GIF o la cartella di lavoro allegata.
Ti dispiace creare una nuova cartella di lavoro e riprovare il codice?
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/6.gif
Questo commento è stato fatto dal moderatore sul sito
Ciao Cristallo,

In allegato uno screenshot del pivot, la casella rossa è il filtro che vorrei modificare in base al valore della cella.

Preferibilmente vorrei utilizzare un intervallo di celle che indicano più numeri di settimane.

Grazie,

Justin
Questo commento è stato fatto dal moderatore sul sito
Ciao Justin,
Scusa non ho visto lo screenshot che hai allegato nella pagina. Forse c'è qualche errore nella pagina.
Se hai ancora bisogno di risolvere il problema, inviami un'e-mail all'indirizzo zxm@addin99.com. Ci dispiace per l'inconvenienza.
Questo commento è stato fatto dal moderatore sul sito
Ciao Justin Teeuw,
Si prega di provare il seguente codice VBA. Spero di poter aiutare.

Private Sub Worksheet_Change(ByVal Target As Range)
    'Update by Extendoffice 20220706
    Dim I As Integer
    Dim xFilterStr1, xFilterStr2 As String
    On Error Resume Next
    If Intersect(Target, Range("O26:O27")) Is Nothing Then Exit Sub
    'Application.ScreenUpdating = False
    
    xFilterStr1 = Range("O26").Value
    xFilterStr2 = Range("O27").Value
    ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number"). _
        ClearAllFilters
    If xFilterStr1 = "" And xFilterStr2 = "" Then Exit Sub
    ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number"). _
        EnableMultiplePageItems = True
    xCount = ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems.Count

    For I = 1 To xCount
        If I <> xFilterStr1 And I <> xFilterStr2 Then
            ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems(I).Visible = False
        Else
            ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems(I).Visible = True
        End If
    Next

    'Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
L'ho usato per un normale excell e ha funzionato. Ma non potevo usarlo per fogli di lavoro olap. forse devo cambiarlo un po?
Questo commento è stato fatto dal moderatore sul sito
Ciao maziaritib4 TIB,
Il metodo è disponibile solo per Microsoft Excel. Ci dispiace per l'inconvenienza.
Questo commento è stato fatto dal moderatore sul sito
Ciao Justin,

Ha funzionato perfettamente, tuttavia, mi chiedo se questa regola può essere applicata a più tabelle pivot all'interno dello stesso foglio?

Grazie,
James
Questo commento è stato fatto dal moderatore sul sito
Ciao James,

Sì, è possibile, il codice che ho usato per questo è (4 pivot e 2 riferimenti di cella):

Private Sub Worksheet_Change (ByVal Target As Range)
Dim I come intero
Dim xFilterStr1, xFilterStr2, yFilterstr1, yfilterstr2 come stringa
On Error Resume Next
Se Intersect(Target, Range("O26:P27")) non è nulla, allora esci da Sub

xFilterStr1 = Intervallo ("O26"). Valore
xFilterStr2 = Intervallo ("O27"). Valore
yFilterstr1 = Intervallo ("p26"). Valore
yfilterstr2 = Intervallo ("p27"). Valore
ActiveSheet.PivotTables("Comp.Ordine_B2C_Crea").Campi pivot("Numero settimana"). _
ActiveSheet.PivotTables("Comp.Ordine_B2B_Crea").Campi pivot("Numero settimana"). _
ActiveSheet.PivotTables("Comp.Ordine_B2C_Disp").Campi pivot("Numero settimana"). _
ActiveSheet.PivotTables("Comp.Ordine_B2B_Disp").Campi pivot("Numero settimana"). _
Cancella tutti i filtri

Se xFilterStr1 = "" E xFilterStr2 = "" E yFilterstr1 = "" E yfilterstr2 = "" Quindi esci da Sub
ActiveSheet.PivotTables("Comp.Ordine_B2C_Crea").Campi pivot("Numero settimana"). _
ActiveSheet.PivotTables("Comp.Ordine_B2B_Crea").Campi pivot("Numero settimana"). _
ActiveSheet.PivotTables("Comp.Ordine_B2C_Disp").Campi pivot("Numero settimana"). _
ActiveSheet.PivotTables("Comp.Ordine_B2B_Disp").Campi pivot("Numero settimana"). _
EnableMultiplePageItems = Vero

xCount = ActiveSheet.PivotTables("Comp.Ordine_B2C_Crea").Campi pivot("Numero settimana").PivotItems.Count
xCount = ActiveSheet.PivotTables("Comp.Ordine_B2B_Crea").Campi pivot("Numero settimana").PivotItems.Count
yCount = ActiveSheet.PivotTables("Comp.Ordine_B2C_Disp").Campi pivot("Numero settimana").PivotItems.Count
yCount = ActiveSheet.PivotTables("Comp.Ordine_B2B_Disp").Campi pivot("Numero settimana").PivotItems.Count

Per I = 1 Per xCount
Se io <> xFilterStr1 e io <> xFilterStr2 Allora
ActiveSheet.PivotTables("Comp.Ordine_B2C_Crea").PivotFields("Numero settimana").PivotItems(I).Visible = False
ActiveSheet.PivotTables("Comp.Ordine_B2B_Crea").PivotFields("Numero settimana").PivotItems(I).Visible = False
Altro
ActiveSheet.PivotTables("Comp.Ordine_B2C_Crea").PivotFields("Numero settimana").PivotItems(I).Visible = True
ActiveSheet.PivotTables("Comp.Ordine_B2B_Crea").PivotFields("Numero settimana").PivotItems(I).Visible = True
End If
Successiva

Per I = 1 A yCount
Se io <> yFilterstr1 E io <> yfilterstr2 Allora
ActiveSheet.PivotTables("Comp.Ordine_B2C_Disp").PivotFields("Numero settimana").PivotItems(I).Visible = False
ActiveSheet.PivotTables("Comp.Ordine_B2B_Disp").PivotFields("Numero settimana").PivotItems(I).Visible = False
Altro
ActiveSheet.PivotTables("Comp.Ordine_B2C_Disp").PivotFields("Numero settimana").PivotItems(I).Visible = True
ActiveSheet.PivotTables("Comp.Ordine_B2B_Disp").PivotFields("Numero settimana").PivotItems(I).Visible = True
End If
Successiva

End Sub
Questo commento è stato fatto dal moderatore sul sito
Modifica i valori in Array(), Worksheets() e Intersect()



**Trova questi e cambiali**
NomeFoglio
E1
Tabella pivot 1
Tabella pivot 2
Tabella pivot 3




Private Sub Worksheet_Change (ByVal Target As Range)
'Aggiorna entro Extendoffice 20180702
Dim xPTable come tabella pivot
Dim xPFile come campo pivot

Dim xPTabled come tabella pivot
Dim xPFiled come campo pivot

Dim xStr come stringa



On Error Resume Next

'리스트 만들기
Dim listArray() come variante
listArray = Array("Tabella pivot1", "Tabella pivot2", "Tabella pivot3")



Se Intersect(Target, Range("E1")) non è nulla, allora Exit Sub
Application.ScreenUpdating = False

For i = 0 A UBound(listArray)

Imposta xPTable = Fogli di lavoro("NomeFoglio").TabellePivot(listArray(i))
Imposta xPFile = xPTable.PivotFields ("Company_ID")

xStr = Target.Text
xPFile.ClearAllFilters
xPFile.PaginaCorrente = xStr



Successiva

Application.ScreenUpdating = True



End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao,

Il codice funziona bene per me. Tuttavia non sono in grado di ottenere che la tabella pivot aggiorni automaticamente la destinazione del filtro. L'obiettivo nel mio caso è una formula [DATE(D18,S14,C18)]. Il codice funziona solo quando faccio doppio clic sulla cella di destinazione e premo invio.

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao,

Questo codice funziona perfettamente. Tuttavia non sono in grado di ottenere il codice per aggiornare automaticamente la tabella pivot. Il valore target per me è una formula (=DATE(D18,..,..)) che cambia a seconda di ciò che è selezionato in D18. Per aggiornare la tabella pivot devo fare doppio clic sulla cella di destinazione e premere invio. C'è un modo per aggirarlo?

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao ST,
Supponiamo che il tuo valore target sia in H6 e cambi a seconda del valore in D18. Per filtrare una tabella pivot in base a questo valore target. Il seguente codice VBA può aiutare. Per favore, provalo.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2022/07/22
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next

xBoolean = False
Set xRg = Range("h6")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
    xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
    xBoolean = True
ElseIf Not (xDs Is Nothing) Then
    xBoolean = True
End If


If Not xBoolean Then Exit Sub

Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet1").PivotTables("Pivot Table 1")
Set xPFile = xPTable.PivotFields("Category")
xStr = Target.Text
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True

End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao Crisal,

Ho aggiunto una riga sul codice: Dim xRg As Range

Il codice non reimposta automaticamente le date quando viene modificato il target. Ho un file excel che replica ciò che sto cercando di fare, tuttavia non sono in grado di aggiungere allegati su questo sito Web. D3 (target = DATE(A15,B15,C15)) ha un'equazione collegata ad A15, B15 e C15. Quando viene modificato qualsiasi valore su A15, B15 e C15, la tabella pivot viene reimpostata su nessun filtro. Potresti aiutarmi su questo?
Questo commento è stato fatto dal moderatore sul sito
Ciao ST,
Non capisco bene cosa intendi. Nel tuo caso, il valore della cella di destinazione D3 viene utilizzato per filtrare la tabella pivot. La formula nella cella di destinazione D3 fa riferimento ai valori delle celle A15, B15 e C15, che cambieranno in base ai valori nelle celle di riferimento. Quando viene modificato qualsiasi valore su A15, B15 e C15, la tabella pivot verrà automaticamente filtrata se il valore nella cella di destinazione soddisfa le condizioni di filtro della tabella pivot. Se il valore nella cella di destinazione non soddisfa i criteri di filtro della tabella pivot, la tabella pivot verrà automaticamente reimpostata su nessun filtro.
Questo commento è stato fatto dal moderatore sul sito
Non sono sicuro che ci sia un modo per condividere un file excel con te. Se il mio valore target, che è una data, cambia in base alle modifiche in altre celle. Devo fare doppio clic sulla cella di destinazione e premere invio (come faresti dopo aver inserito una formula in una cella) per aggiornare la tabella pivot
Questo commento è stato fatto dal moderatore sul sito
Ciao Sagar T,
Il codice è stato aggiornato. Per favore, provalo. Grazie per il tuo feedback.
Non dimenticare di modificare i nomi del foglio di lavoro, della tabella pivot e del filtro nel codice. Oppure puoi scaricare la seguente cartella di lavoro caricata per il test.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220805
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next

xBoolean = False
Set xRg = Range("D3")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
    xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
    xBoolean = True
ElseIf Not (xDs Is Nothing) Then
    xBoolean = True
End If


If Not xBoolean Then Exit Sub
xStr = Format(xRg.Text, "m/d/yyyy")
Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet2").PivotTables("PivotTable1")
Set xPFile = xPTable.PivotFields("Date")
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True

End Sub
Questo commento è stato fatto dal moderatore sul sito
trovali e modificali in Array(), Intersect(), Worksheets(), PivotFields()

Tabella pivot 1
Tabella pivot 2
Tabella pivot 3
Tabella pivot 4
H1
NomeFoglio
Nome campo




Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xPTabled As PivotTable
    Dim xPFiled As PivotField
    Dim xStr As String
    On Error Resume Next
    '리스트 만들기
    Dim listArray() As Variant
    listArray = Array("PivotTable1", "PivotTable2", "PivotTable3", "PivotTable4")
    If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    For i = 0 To UBound(listArray)
        Set xPTable = Worksheets("SheetName").PivotTables(listArray(i))
        Set xPFile = xPTable.PivotFields("FieldName")
        'MsgBox (listArray(i))
        xStr = Target.Text
        xPFile.ClearAllFilters
        xPFile.CurrentPage = xStr
    Next
        Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Come si può scegliere questa tabella standard per 2 filtri da 2 righe? а не 1 как в примере?
Questo commento è stato fatto dal moderatore sul sito
Ciao Алексей,

Si prega di verificare se il codice VBA in questo commento #38754 può aiutare.
Questo commento è stato fatto dal moderatore sul sito
È possibile trovare il gioco H6 sul gioco in un altro elenco? come si fa? подскажите пожалуйста.
Questo commento è stato fatto dal moderatore sul sito
Ciao Алексей,

Non è necessario modificare il codice, basta aggiungere il codice VBA al foglio di lavoro della cella a cui si desidera fare riferimento.
Ad esempio, se desideri filtrare una tabella pivot denominata "Tabella pivot 1" in Sheet2 in base al valore della cella H6 in Sheet3, fare clic con il pulsante destro del mouse su Sheet3 scheda del foglio di lavoro, fare clic su Visualizza codice dal menu di scelta rapida, quindi aggiungere il codice al file Foglio3 (Codice) finestra.
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL