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

Kako počistiti določeno vsebino celice, če se vrednost druge celice spremeni v Excelu?

Recimo, da želite počistiti obseg določene vsebine celice, če se spremeni vrednost druge celice, kako lahko to storite? Ta objava vam bo pokazala način za rešitev te težave.

Izbrišite določeno vsebino celice, če se vrednost druge celice spremeni s kodo VBA


Izbrišite določeno vsebino celice, če se vrednost druge celice spremeni s kodo VBA

Kot je prikazano na spodnjem posnetku zaslona, ​​se bo ob spremembi vrednosti v celici A2 vsebina v celici C1: C3 samodejno izbrisala. Naredite naslednje.

1. Na delovnem listu boste počistili vsebino celice na podlagi sprememb v drugih celicah, z desno miškino tipko kliknite zavihek lista in izberite Ogled kode iz kontekstnega menija. Oglejte si posnetek zaslona:

2. Na odprtju Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite spodnjo kodo VBA v okno Code.

Koda VBA: počistite določeno vsebino celice, če se vrednost druge celice spremeni

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

Opombe: V kodi je B2 celica, na podlagi katere boste počistili vsebino celice, C1: C3 pa obseg, iz katerega boste izbrisali vsebino. Prosimo, spremenite jih po potrebi.

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

Nato lahko vidite vsebino v območju C1: C3 se samodejno izbriše, ko se vrednost v celici A2 spremeni, kot je prikazano spodaj.


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 (38)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Koda za brisanje celice, če se druga spremeni, deluje odlično!!!! Ampak rabim, da deluje obratno..... Kako je napisana ta koda??


Hvala za vašo pomoč
Ta komentar je moderator na spletnem mestu minimiziral
Dragi Scott,
Kako misliš delati obratno? Ko ročno počistite vsebino določenih celic (C1:C3), potem samodejno počistite vsebino celice A2?
Ta komentar je moderator na spletnem mestu minimiziral
zdravo, to deluje samo za fiksno izvorno celico (A2), kako to dinamično, kot je izvor, spremenljiva celica? poskušal sem napisati
A=aktivna celica.vrstica
Če se ne seka (cilj, razpon ("A" & A)) ni nič potem
Obseg("C1:C3").ClearContents
Konec Če

to bi moralo opraviti delo v zvezi z aktivno celico (tj. izbor), vendar ne deluje
hvala
Ta komentar je moderator na spletnem mestu minimiziral
Dober dan,
Prosimo, poskusite s spodnjo kodo VBA. Hvala za vaš komentar.

Zasebni poddelovni list_Spremeni (ByVal Target As Range)
Če (Ne seka(Cilj, Vrstice(1)) ni nič) in (Target.Count = 1) potem
Obseg("C1:C3").ClearContents
Konec Če
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, iščem način za brisanje obsega celic podatkov, ko je v določeno celico vpisan "x". Uporabil sem zgornjo formulo in je popolnoma delovala za to eno vrstico. Težava je v tem, da ga moram razširiti na več vrstic. Na primer, če je v "D13" vpisan "x", moram počistiti obseg J:13 - v:13. Potrebujem tudi, da se to zgodi, če je v "D14" vpisan x, kot je treba počistiti obseg d:14 - v:14. Ali obstaja način, da to napišem? Hvala za vašo pomoč!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, to pri meni ne deluje. Nič se ne spremeni, a tudi napak ni. Kakšen nasvet?
Ta komentar je moderator na spletnem mestu minimiziral
Dober dan,
Oprostite za nevšečnosti. Bi posredovali svojo različico Officea? Hvala za vaš komentar.
Ta komentar je moderator na spletnem mestu minimiziral
Kako se v primeru A2 sklicujem na celico z drugega delovnega lista?
Ta komentar je moderator na spletnem mestu minimiziral
kako to narediti brez VBA?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Sonia,
Nisem našel nobene rešitve, razen za VBA. Hvala za vaš komentar.
Ta komentar je moderator na spletnem mestu minimiziral
Katero kodo VBA uporabim, če imam tabelo in potrebujem več praznih mest?

Moja miza je B3:E7. Če je vsebina v stolpcu B počiščena, želim, da se podatki v stolpcu C, D, E za to vrstico počistijo. Imam spodaj za vrstico 3, vendar bi želel enako v vrstici 4,5,6 in 7.

Zasebni poddelovni list_Spremeni (ByVal Target As Range)
Če se ne seka(Cilj, obseg("B3")) je potem nič
Obseg("C3:E3").ClearContents
Konec Če
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Kaj pa tisti, ki z dvojnim klikom počisti vsebino katere koli celice?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, kako ponoviš kodo za več kot eno celico v primeru, tj. če izbrišem vsebino celic a4 in a5, želim počistiti vsebino b4:z4 oziroma b5:z5, moram to narediti za veliko preglednico s 1000 vrsticami bo vsak nasvet zelo cenjen
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Julian, tudi jaz iščem isto, prosim, povej mi, če imaš kakšno rešitev za to.
Ta komentar je moderator na spletnem mestu minimiziral
Prosimo, da ustrezno spremenite številke
Dim i As Integer
Zasebni poddelovni list_Spremeni (ByVal Target As Range)
Za i = 2 Za 10
lookrange = "A" & i
obseg vsebine = "B" & i & ":" & "C" & i
Če se ne seka (cilj, razpon (razpon)) je potem nič
Obseg(obseg vsebine).ClearContents
Konec Če
Naslednja i
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Živjo sagarsrinivas0312, najlepša hvala za to kodo. Že teden dni iščem to rešitev!
Ta komentar je moderator na spletnem mestu minimiziral
To je super, hvala. Kako to naredim večkrat...da počistim druge celice na podlagi drugega stolpca?
Ta komentar je moderator na spletnem mestu minimiziral
riusciresti a scrivermelo in modo che debba solo fare copia ed incolla?
non riesco veramente a farlo funzionare

najlepša hvala
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Poskušam počistiti dodatne celice stolpcev A in B, če najdem prazne celice v stolpcu C lista z imenom »Prodano« in makro zažene iz lista z imenom »Račun«.

Spodnjo kodo sem dobil s spletnega mesta za pomoč, vendar ne morem doseči želenega.
prosim pomagajte mi glede tega. Posnetek zaslona je priložen, kar želim.

Počisti vsoto()

Dim g Tako dolgo
Za g = 2 Za ActiveSheet.UsedRange.Rows.Count
Če celice(g, "C").Vrednost = "" Potem
Celice(g, "A").ClearContents
Celice(g, "B").ClearContents

Konec Če
Naslednji
Končna vsota
Ta komentar je moderator na spletnem mestu minimiziral
Zdi se, da to ne deluje, če vsebino podane celice nadzoruje celica na drugem listu? ali obstaja popravek za to?
Primer uporabe imen vaših celic
Če je celica "A2" (=list1[@[a5]] in se ta številka spremeni na listu 1, nato spremeni vsebino A2, ne izbriše vsebine v določenem obsegu.
Ta komentar je moderator na spletnem mestu minimiziral
Zasebni pod delovni list_Aktiviraj()
Če Range("S2") <> Range("A2").Value Then
Obseg("S2") = Obseg("A2").Vrednost
Obseg("d2:g2").ClearContents
Konec Če
'S2' je mogoče nadomestiti s katero koli celico zunaj obsega podatkov. Kar VBA počne, je samodejno posodabljanje podatkov za 'S2', nato pa podatki, ki se posodabljajo, nadzirajo vaš naveden obseg in ali se počistijo ali ne.
To je edini način, ki sem ga našel, da to uspešno naredim pri uporabi referenčnih celic tako v delovnem listu kot zunaj njega.
Ta komentar je moderator na spletnem mestu minimiziral
Ni ravno tisto, kar potrebujem, vendar pridem tja. Imam prazno celico E3. Podatke imam v B3. Ko vnesem podatke v E3, če so enaki kot B3, je B3 izbrisan. Upam, da mi lahko pomagate.
Ta komentar je moderator na spletnem mestu minimiziral
Ali je mogoče počistiti določeno vsebino celice, če sprožilna celica vsebuje določeno številko? Recimo, ČE celica A1 = 1, nato počistite celice A2:A4?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi,

Besoin d'aide, j'ai besoin d'effacer le contenu d'une cellule de la colonne "I" si la cellule (de la même ligne) de la colonne "O" =0, sur okoli 2000 lignes avec des titres tout le 10 lignes environ.
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,

Samo iščem preprost način za to, da če je »B2« izbral »Da« na seznamu za preverjanje veljavnosti podatkov, bi celica B3 počistila svoje podatke ... in obratno: če je »B3« izbral »Da« na seznam za preverjanje veljavnosti podatkov, bi celica "B2" počistila svoje podatke.

V bistvu B2 or B3 lahko rečem "Da"(s seznama za preverjanje podatkov), vendar nikoli hkrati, eden bi moral očistiti drugega.
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo Jeff,
Naslednja koda VBA vam lahko naredi uslugo. Prosim, poskusite.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più righe e colonne) in base al valore di un'altra cella. es: cela A2 je spodnja od 12, kvadrat z vertici nasproti C2 : F4 venga cancellato.
Grazie Mille
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Pietro,
Oprostite, ne razumem povsem vašega vprašanja. Ali lahko naložite posnetek zaslona svojih podatkov?
Ta komentar je moderator na spletnem mestu minimiziral
Pomagajte z rešitvami, VBA ne poznam. Treba je pri spremembi jačejke odstraniti podatke iz drugega in da je to delovalo na ves stolbec.
Menjava A2 se odstrani iz G2, druga A3 se odstrani iz G3, druga A6 se odstrani iz G6 in itd.

Zasebni poddelovni list_Spremeni (ByVal Target As Range)
Če se ne seka(Cilj, obseg("A2")) je potem nič
Obseg("G2").ClearContents
Konec Če
End Sub


Ta koda je dobra za eno jačejko, in kako ga razmnožiti na vse jačejske stolbca?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Natalya,
Naslednja koda VBA vam lahko pomaga rešiti težavo. Prosim poskusite.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni,

Zu Punkt 3.
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur. Ich Habe Strg, Alt, Tab... allerdings die Taste Andere gibt es auf meiner Tastatur leider nicht.

Lieben Gruß Mathias
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Mathias,
Če na tipkovnici ne najdete ustrezne tipke. Lahko samo kliknete Shrani gumb v Okno aplikacij Microsoft Visual Basic da shranite kodo in nato ročno zaprete to okno.
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,
Spodnja koda deluje, kot je oglaševano, vendar se pojavijo naslednje težave:

Prvič, pri spreminjanju velikosti ciljne tabele so vsi podatki tabele počiščeni IN, vse glave razen stolpca 1 so ponovno označene v »Stolpec1, Stolpec2 itd. IN delovni zvezek samodejno shrani svoj del in prekine razveljavitev.

Drugič, ko izbrišem katero koli vrstico tabele, dobim »Napaka med izvajanjem 1004 (Odmik metode obsega objekta ni uspel.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


Kakšna ideja, kaj bi lahko bilo narobe?

Hvala vnaprej!
Ta komentar je moderator na spletnem mestu minimiziral
Hola, estoy trabajando una base de datos en OFFICE ONLINE a traves de ONEDRIVE, quiero que al PONER "CANCELADO" ali "NOSHOW" elimine el contenido de la fila seleccionada.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Angel,
Koda VBA ne deluje v Office Online. Oprostite za nevšečnosti.
Tu še ni objavljenih komentarjev
Obremenitev Več
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