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

Kako povezati filter vrtilne tabele z določeno celico v Excelu?

Če želite povezati filter vrtilne tabele z določeno celico in narediti vrtilno tabelo filtrirano glede na vrednost celice, vam lahko pomaga metoda v tem članku.

Povežite filter vrtilne tabele z določeno celico s kodo VBA


Povežite filter vrtilne tabele z določeno celico s kodo VBA

Vrtilna tabela, v katero boste funkcijo filtra povezali z vrednostjo celice, mora vsebovati polje filtra (ime polja filtra igra pomembno vlogo v naslednji kodi VBA).

Za primer vzemimo spodnjo vrtilno tabelo. Pokliče se polje filtra v vrtilni tabeli Kategorija, in vključuje dve vrednosti "Stroški"In"Prodaja". Po povezavi filtra vrtilne tabele s celico bi morale biti vrednosti celic, ki jih boste uporabili za filtriranje vrtilne tabele, »Stroški« in »Prodaja«.

1. Izberite celico (tukaj izberem celico H6), ki jo boste povezali s funkcijo filtra vrtilne tabele, in v celico vnaprej vnesite eno od vrednosti filtra.

2. Odprite delovni list, ki vsebuje vrtilno tabelo, na katero boste povezali celico. Z desno miškino tipko kliknite zavihek lista in izberite Ogled kode iz kontekstnega menija. Oglejte si posnetek zaslona:

3. V Ljubljani Microsoft Visual Basic za aplikacije okno, kopirajte pod kodo VBA v okno Code.

Koda VBA: Povežite filter vrtilne tabele z določeno celico

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

Opombe:

1) "Sheet1"Je ime odprtega delovnega lista.
2) "Vrtilna tabela2"Je ime vrtilne tabele, ki bo funkcijo filtra povezala s celico.
3) Polje za filtriranje v vrtilni tabeli se imenuje "Kategorija".
4) Referenčna celica je H6. Te spremenljive vrednosti lahko spremenite glede na svoje potrebe.

4. Pritisnite druga + Q tipke za zapiranje Microsoft Visual Basic za aplikacije okno.

Zdaj je funkcija filtra vrtilne tabele povezana s celico H6.

Osvežite celico H6, nato se ustrezni podatki v vrtilni tabeli filtrirajo na podlagi obstoječe vrednosti. Oglejte si posnetek zaslona:

Ko spremenite vrednost celice, se filtrirani podatki v vrtilni tabeli samodejno spremenijo. Oglejte si posnetek zaslona:


Preprosto izberite celotne vrstice glede na vrednost celice v potrditvenem stolpcu:

O Izberite Specific Cells uporabnost Kutools za Excel vam lahko pomaga hitro izbrati celotne vrstice glede na vrednost celice v certifikovanem stolpcu v Excelu, kot je prikazano spodaj. Ko izberete vse vrstice glede na vrednost celice, jih lahko ročno premaknete ali kopirate na novo mesto, kot ga potrebujete v Excelu.
Prenesite in preizkusite zdaj! (30-dnevna prosta pot)


Sorodni članki:


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (36)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
kako to narediti na več polju, saj je v kodi samo en cilj
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Frank
Sory ti pri tem ne more pomagati.
Ta komentar je moderator na spletnem mestu minimiziral
Kaj pa, če je celica, ki je povezana z vrtilno tabelo, v tem primeru H6, na drugem delovnem listu? Kako spremeni kodo?
Ta komentar je moderator na spletnem mestu minimiziral
kaj če imam več kot 1 vrtilno tabelo in se povežem z 1 celico. Kako naj spremenim kodo?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Jeri,
Žal ti pri tem ne morem pomagati. Dobrodošli, da objavite kakršno koli vprašanje na našem forumu: https://www.extendoffice.com/forum.html če želite dobiti več podpore za Excel od strokovnjakov za Excel ali drugih oboževalcev Excela.
Ta komentar je moderator na spletnem mestu minimiziral
poiščite te in jih spremenite v Array(), Intersect(), Worksheets(), PivotFields()

Vrtilna tabela1
Vrtilna tabela2
Vrtilna tabela3
Vrtilna tabela4
H1
SheetName
Ime polja




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
Ta komentar je moderator na spletnem mestu minimiziral
Boa tarde...! Ótima publicação, como faço para utilizar o filtro em duas ou mais tabelas dinâmicas...? Agradeço desde já.

Dober večer...! Odlično založništvo, kako naj uporabim filter v dveh ali več vrtilnih tabelah ...? Hvala vnaprej.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Gilmar Alves,
Žal ti pri tem ne morem pomagati. Dobrodošli, da objavite kakršno koli vprašanje na našem forumu: https://www.extendoffice.com/forum.html če želite dobiti več podpore za Excel od strokovnjakov za Excel ali drugih oboževalcev Excela.
Ta komentar je moderator na spletnem mestu minimiziral
Ali je kdo ugotovil vprašanje povezovanja več vrtilnih tabel?
Ta komentar je moderator na spletnem mestu minimiziral
Spremenite vrednosti v Array(), Worksheets() in Intersect()



**Poiščite te in spremenite**
SheetName
E1
Vrtilna tabela1
Vrtilna tabela2
Vrtilna tabela3




Zasebni poddelovni list_Spremeni (ByVal Target As Range)
'Posodobite do Extendoffice 20180702
Dim xPTable kot vrtilna tabela
Zatemni xPFile kot vrtilno polje

Dim xPTabled Kot vrtilna tabela
Dim xPFiled As PivotField

Dim xStr kot niz



On Error Resume Next

'리스트 만들기
Dim listArray() kot različica
listArray = Array("Vrtilna tabela1", "Vrtilna tabela2", "Vrtilna tabela3")



Če Intersect(Target, Range("E1")) ni nič, potem zapustite Sub
Application.ScreenUpdating = Napačno

Za i = 0 v UBound(listArray)

Nastavite xPTable = Worksheets("SheetName").Vrtilne tabele(listArray(i))
Nastavite xPFile = xPTable.PivotFields("ID_podjetja")

xStr = Target.Besedilo
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr



Naslednji

Application.ScreenUpdating = Res



End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Ciao, sto provando a fare lo stesso esempio per far in modo che il filtro della pivot si setti sul valore della cella,
non riesco a farla funzionare.

Quale passaggio manca nella descrizione sopra?
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Ste dobili kakšen poziv za napako? Moram vedeti več o vaši težavi, kot je vaša različica Excela. In če vas ne moti, poskusite ustvariti svoje podatke v novem delovnem zvezku in poskusite znova, ali pa naredite posnetek zaslona svojih podatkov in jih naložite sem.
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

Poskušal sem, da bi to delovalo za filter stolpcev, vendar se zdi, da ne deluje. Ali potrebujem drugo kodo za to?

Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Hi Justin,
Ste prejeli sporočilo o napaki? Moram vedeti več o vaši težavi.
Preden uporabite kodo, ne pozabite spremeniti "ime lista""ime vrtilne tabele""ime filtra vrtilne tabele" in celica na podlagi katerega želite filtrirati vrtilno tabelo (glejte sliko).
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/4.png
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Crystal,

Hvala za vašo pomoč. Težava je v tem, da funkcija iz nekega razloga ne dela ničesar. Nekaj ​​pojasnil:

Ime vrtilne točke: Order_Comp_B2C
Ime lista: Računski list
Ime filtra: Številka tedna (to ime sem spremenil iz tistega, kar je bilo "Št. tedna odpreme" v podatkovni datoteki)
Celica za spremembo: O26 in O27 (to mora biti v območju)

V tem vrtilnem stolpcu poskušam spremeniti filter za stolpce, v območju filtra v meniju Polja vrtilne tabele nimam ničesar.

moja koda je:

Zasebni poddelovni list_Spremeni (ByVal Target As Range)
'Posodobite do Extendoffice 20180702
Dim xPTable kot vrtilna tabela
Zatemni xPFile kot vrtilno polje
Dim xStr kot niz
On Error Resume Next
Če Intersect(Target, Range("O26")) ni nič, potem zapustite Sub
Application.ScreenUpdating = Napačno
Set xPTable = Worksheets("Calculation Sheet").Vrtilne tabele("Order_Comp_B2C")
Nastavite xPFile = xPTable.PivotFields("Številka tedna")
xStr = Target.Besedilo
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = Res
End Sub

Hvala,

Justin
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Justin Teeuw,
Spremenil sem Ime vrtišča, ime lista, ime filtra in celico spremeniti pogojem, ki ste jih omenili zgoraj, in preizkusil kodo VBA, ki ste jo posredovali, v mojem primeru dobro deluje. Oglejte si naslednji GIF ali priložen delovni zvezek.
Ali lahko ustvarite nov delovni zvezek in znova poskusite kodo?
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/6.gif
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Crystal,

Priložen je posnetek zaslona vrtišča, rdeče polje je filter, ki bi ga rad spremenil glede na vrednost celice.

Po možnosti bi rad uporabil obseg celic, ki označujejo več številk tednov.

Hvala,

Justin
Ta komentar je moderator na spletnem mestu minimiziral
Hi Justin,
Žal nisem videl posnetka zaslona, ​​ki ste ga priložili strani. Morda je na strani kakšna napaka.
Če še vedno morate rešiti težavo, mi pišite na zxm@addin99.com. Oprostite za nevšečnosti.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Justin Teeuw,
Poskusite naslednjo kodo VBA. Upam, da lahko pomagam.

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
Ta komentar je moderator na spletnem mestu minimiziral
Uporabil sem ga za običajni excell in je deloval. Vendar ga nisem mogel uporabiti za olap delovne liste. mogoče moram malo spremeniti?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo maziaritib4 TIB,
Metoda je na voljo samo za Microsoft Excel. Oprostite za nevšečnosti.
Ta komentar je moderator na spletnem mestu minimiziral
Hi Justin,

To je delovalo odlično, vendar me zanima, ali je to pravilo mogoče uporabiti za več vrtilnih tabel na istem listu?

Hvala,
James
Ta komentar je moderator na spletnem mestu minimiziral
Hi James,

Da, to je mogoče, koda, ki sem jo uporabil za to, je (4 vrtišča in 2 sklicevanja na celice):

Zasebni poddelovni list_Spremeni (ByVal Target As Range)
Dim I kot celo število
Zatemni xFilterStr1, xFilterStr2, yFilterstr1, yfilterstr2 kot niz
On Error Resume Next
Če Intersect(Target, Range("O26:P27")) ni nič, potem zapustite sub

xFilterStr1 = Obseg("O26").Vrednost
xFilterStr2 = Obseg("O27").Vrednost
yFilterstr1 = Obseg("p26").Vrednost
yfilterstr2 = Obseg("p27").Vrednost
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("Številka tedna"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("Številka tedna"). _
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("Številka tedna"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("Številka tedna"). _
ClearAllFilters

If xFilterStr1 = "" And xFilterStr2 = "" And yFilterstr1 = "" In yfilterstr2 = "" Potem Exit Sub
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("Številka tedna"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("Številka tedna"). _
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("Številka tedna"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("Številka tedna"). _
EnableMultiplePageItems = True

xCount = ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("Week Number").PivotItems.Count
xCount = ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("Week Number").PivotItems.Count
yCount = ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("Week Number").PivotItems.Count
yCount = ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("Week Number").PivotItems.Count

Za I = 1 do xCount
Če sem <> xFilterStr1 In jaz <> xFilterStr2 Potem
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("Week Number").PivotItems(I).Visible = False
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("Week Number").PivotItems(I).Visible = False
Else
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("Week Number").PivotItems(I).Visible = True
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("Week Number").PivotItems(I).Visible = True
Konec Če
Naslednji

Za I = 1 To yCount
Če sem <> yFilterstr1 In jaz <> yfilterstr2 Potem
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("Week Number").PivotItems(I).Visible = False
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("Week Number").PivotItems(I).Visible = False
Else
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("Week Number").PivotItems(I).Visible = True
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("Week Number").PivotItems(I).Visible = True
Konec Če
Naslednji

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Spremenite vrednosti v Array(), Worksheets() in Intersect()



**Poiščite te in spremenite**
SheetName
E1
Vrtilna tabela1
Vrtilna tabela2
Vrtilna tabela3




Zasebni poddelovni list_Spremeni (ByVal Target As Range)
'Posodobite do Extendoffice 20180702
Dim xPTable kot vrtilna tabela
Zatemni xPFile kot vrtilno polje

Dim xPTabled Kot vrtilna tabela
Dim xPFiled As PivotField

Dim xStr kot niz



On Error Resume Next

'리스트 만들기
Dim listArray() kot različica
listArray = Array("Vrtilna tabela1", "Vrtilna tabela2", "Vrtilna tabela3")



Če Intersect(Target, Range("E1")) ni nič, potem zapustite Sub
Application.ScreenUpdating = Napačno

Za i = 0 v UBound(listArray)

Nastavite xPTable = Worksheets("SheetName").Vrtilne tabele(listArray(i))
Nastavite xPFile = xPTable.PivotFields("ID_podjetja")

xStr = Target.Besedilo
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr



Naslednji

Application.ScreenUpdating = Res



End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,

Koda mi dobro deluje. Vendar ne morem doseči, da bi vrtilna tabela samodejno posodobila cilj filtra. Cilj v mojem primeru je formula [DATUM(D18,S14,C18)]. Koda deluje le, ko dvokliknem ciljno celico in pritisnem enter.

Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,

Ta koda deluje popolnoma. Vendar ne morem dobiti kode za samodejno posodobitev vrtilne tabele. Zame je ciljna vrednost formula (=DATUM(D18,..,..)), ki se spreminja glede na izbrano pri D18. Da bi posodobil vrtilno tabelo, moram dvakrat klikniti ciljno celico in pritisniti enter. Ali obstaja kakšna pot?

Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni ST,
Recimo, da je vaša ciljna vrednost v H6 in se spreminja glede na vrednost v D18. Za filtriranje vrtilne tabele na podlagi te ciljne vrednosti. Naslednja koda VBA vam lahko pomaga. Prosim poskusite.
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
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni Crysal,

Kodi sem dodal vrstico: Dim xRg As Range

Koda ne ponastavi samodejno datumov, ko se spremeni cilj. Imam datoteko excel, ki posnema to, kar poskušam narediti, vendar na to spletno mesto ne morem dodajati prilog. D3 (cilj = DATUM(A15,B15,C15)) ima enačbo, povezano z A15, B15 in C15. Ko se spremeni katera koli vrednost na A15, B15 in C15, se vrtilna tabela ponastavi na brez filtra. Mi lahko pomagate pri tem?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo ST,
Ne razumem čisto kaj misliš. V vašem primeru se vrednost ciljne celice D3 uporabi za filtriranje vrtilne tabele. Formula v ciljni celici D3 se sklicuje na vrednosti celic A15, B15 in C15, ki se bodo spremenile glede na vrednosti v referenčnih celicah. Ko se spremeni katera koli vrednost na A15, B15 in C15, bo vrtilna tabela samodejno filtrirana, če vrednost v ciljni celici izpolnjuje pogoje filtra vrtilne tabele. Če vrednost v ciljni celici ne ustreza kriterijem filtriranja vrtilne tabele, bo vrtilna tabela samodejno ponastavljena na brez filtriranja.
Ta komentar je moderator na spletnem mestu minimiziral
Nisem prepričan, ali obstaja način za skupno rabo datoteke excel z vami. Če se moja ciljna vrednost, ki je datum, spremeni glede na spremembe v drugih celicah. Dvoklikniti moram ciljno celico in pritisniti enter (kot bi to storili po vnosu formule v celico), da posodobim vrtilno tabelo
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Sagar T,
Koda je posodobljena. Prosim poskusite. Hvala za vaše povratne informacije.
Ne pozabite spremeniti imen delovnega lista, vrtilne tabele in filtra v kodi. Lahko pa prenesete naslednji naložen delovni zvezek za testiranje.

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
Ta komentar je moderator na spletnem mestu minimiziral
poiščite te in jih spremenite v Array(), Intersect(), Worksheets(), PivotFields()

Vrtilna tabela1
Vrtilna tabela2
Vrtilna tabela3
Vrtilna tabela4
H1
SheetName
Ime polja




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
Ta komentar je moderator na spletnem mestu minimiziral
Kako narediti, da se svodna tabela uporabi takoj 2 filtra iz 2 raznih jajčekov? a ne 1 kot v primeru?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Aleksej,

Preverite, ali je koda VBA v tem komentarju #38754 lahko pomaga.
Ta komentar je moderator na spletnem mestu minimiziral
Ali je mogoče soslati namesto jačejke H6 na jačejku na drugem listu? kako to narediti? подскажите пожалуйста.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Aleksej,

Kode vam ni treba spreminjati, samo dodajte kodo VBA na delovni list celice, na katero se želite sklicevati.
Na primer, če želite filtrirati vrtilno tabelo z imenom "Vrtilna tabela1"v Sheet2 glede na vrednost celice H6 in Sheet3, z desno miškino tipko kliknite Sheet3 zavihek delovnega lista kliknite Ogled kode iz menija z desnim klikom in nato dodajte kodo v List3 (koda) okno.
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL