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

Hur rensar du specificerat cellinnehåll om värdet för en annan cell ändras i Excel?

Om du antar att du vill rensa ett antal specificerade cellinnehåll om värdet på en annan cell ändras, hur kan du göra? Det här inlägget visar dig en metod för att lösa detta problem.

Rensa specificerat cellinnehåll om värdet för en annan cell ändras med VBA-kod


Rensa specificerat cellinnehåll om värdet för en annan cell ändras med VBA-kod

Som nedan visas skärmdump, när värdet i cell A2 ändras kommer innehållet i cell C1: C3 att rensas automatiskt. Gör så här.

1. I kalkylbladet kommer du att rensa cellinnehåll baserat på en annan celländring, högerklicka på arkfliken och välj Visa kod från snabbmenyn. Se skärmdump:

2. I öppningen Microsoft Visual Basic för applikationer fönster, kopiera och klistra in nedanför VBA-koden i kodfönstret.

VBA-kod: Rensa specificerat cellinnehåll om värdet för en annan cell ändras

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

Anmärkningar: I koden är B2 den cell du rensar cellinnehåll baserat på, och C1: C3 är det intervall du rensar innehåll från. Ändra dem efter behov.

3. tryck på andra + Q för att stänga Microsoft Visual Basic för applikationer fönster.

Då kan du se innehåll i intervall C1: C3 rensas automatiskt när värdet i cell A2 ändras enligt nedanstående skärmdump.


Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (38)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Koden för att rensa en cell om en annan ändras fungerar utmärkt!!!! Men jag behöver det för att fungera tvärtom..... Hur är den koden skriven??


Tack för din hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Scott,
Vad menar du med att jobba tvärtom? När du manuellt rensar innehållet i vissa celler (C1:C3), rensar du innehållet i cell A2 automatiskt?
Denna kommentar minimerades av moderatoren på webbplatsen
hej, detta fungerar endast för en fast källcell (A2), hur gör detta dynamiskt, som källan är en variabel cell? jag försökte skriva
A=activecell.row
Om inte skära (mål, intervall("A"& A)) är ingenting då
Range("C1:C3"). ClearContents
End If

detta borde göra jobbet med avseende på activecell (dvs urval) men fungerar inte
tack
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Försök med VBA-koden nedan. Tack för din kommentar.

Privata delarkivsförändring (ByVal-mål som område)
Om (Not Intersect(Target, Rows(1)) Is Nothing) Och (Target.Count = 1) Då
Range("C1:C3"). ClearContents
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag letar efter ett sätt att rensa ett intervall av celler med data när ett "x" skrivs in i en viss cell. Jag använde ovanstående formel och det fungerade perfekt för den ena raden. Problemet är att jag behöver utöka den till många rader. Till exempel, om ett "x" skrivs in i "D13", behöver jag att intervallet J:13 - v:13 raderas. Jag behöver också att det händer om ett x skrivs in i "D14" som i Jag behöver intervallet d:14 - v:14 för att raderas. Finns det något sätt att skriva det? Tack för hjälpen!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej detta fungerar inte för min. Inget förändras men inga fel heller. Några tips?
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Beklagar olägenheten. Skulle du tillhandahålla din Office-version? Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
I fallet med A2, hur refererar jag till en cell från ett annat kalkylblad?
Denna kommentar minimerades av moderatoren på webbplatsen
något sätt att göra detta utan VBA?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Sonia,
Hittade ingen lösning förutom VBA. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Vilken VBA-kod använder jag om jag har en tabell och behöver flera blanksteg?

Mitt bord är B3:E7. Om innehållet i kolumn B rensas så skulle jag vilja ha data i kolumn C, D, E rensade för den raden. Jag har nedanstående för rad 3, men skulle vilja ha samma på rad 4,5,6 och 7.

Privata delarkivsförändring (ByVal-mål som område)
Om inte skära (mål, intervall("B3")) är ingenting då
Range("C3:E3"). ClearContents
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Vad sägs om att bara rensa innehållet i valfri cell på ett dubbelklick?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, hur repeterar du koden för mer än en cell i exemplet, dvs om jag tar bort innehållet i cellerna a4 & a5 vill jag rensa innehållet i b4:z4 respektive b5:z5, jag måste göra detta för ett stort kalkylblad med 1000 rader kommer alla råd att uppskattas mycket
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Julian, jag letar också efter samma sak, låt mig veta om du har någon lösning på detta.
Denna kommentar minimerades av moderatoren på webbplatsen
Ändra siffrorna därefter
Dim i As Integer
Privata delarkivsförändring (ByVal-mål som område)
För i = 2 till 10
lookrange = "A" & i
contentrange = "B" & i & ":" & "C" & i
If Not Intersect(Target, Range(lookrange)) är ingenting då
Range(contentrange).ClearContents
End If
Nästa jag
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej sagarsrinivas0312, Tack så mycket för den här koden. Jag letar redan en vecka efter denna lösning!
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är bra, tack. Hur gör jag detta flera gånger...så rensa andra celler baserat på en annan kolumn?
Denna kommentar minimerades av moderatoren på webbplatsen
riusciresti a scrivermelo in modo che debba solo fare copia ed incolla?
non riesco veramente a farlo funzionare

grazie mille
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Jag försöker rensa extra celler i kolumn A och B om jag hittar tomma celler i kolumn C på arket med namnet "Sålt" och makrot körs från arket med namnet "Faktura".

Jag fick nedanstående kod från en hjälpande webbplats men fick inte min önskan.
snälla hjälp mig med det. Skärmdump bifogas vad jag vill.

Summa Clear()

Dim g As Long
För g = 2 Till ActiveSheet.UsedRange.Rows.Count
Om Cells(g, "C").Value = "" Då
Cells(g, "A"). ClearContents
Cells(g, "B"). ClearContents

End If
Nästa
Slutsumma
Denna kommentar minimerades av moderatoren på webbplatsen
Detta verkar inte fungera om det angivna cellinnehållet styrs av en cell på ett annat ark? finns det en fix för detta?
Exempel med dina cellnamn
Om cell "A2" är (=ark1[@[a5]] och detta nummer ändras på ark 1 ändras innehållet i A2 så rensar det inte innehållet inom specificerat område.
Denna kommentar minimerades av moderatoren på webbplatsen
Private Sub Worksheet_Activate()
If Range("S2") <> Range("A2").Värde Då
Range("S2") = Range("A2").Värde
Range("d2:g2"). ClearContents
End If
'S2' kan ersättas med vilken cell som helst utanför dataområdet. Vad VBA gör är att automatiskt uppdatera data för 'S2', varefter data som uppdateras är det som styr ditt angivna intervall och om det rensas eller inte.
Detta är det enda sättet jag har hittat för att framgångsrikt göra detta när jag använder refererade celler både i och utanför kalkylbladet.
Denna kommentar minimerades av moderatoren på webbplatsen
Inte riktigt vad jag behöver men att komma dit. Jag har en tom cell E3. Jag har data i B3. När jag lägger in data i E3, om det är samma som B3 så raderas B3. Hoppas du kan hjälpa mig.
Denna kommentar minimerades av moderatoren på webbplatsen
Är det möjligt att rensa specificerat cellinnehåll om triggercellen innehåller ett specifikt nummer? Säg, OM cell A1 = 1, rensa sedan celler A2:A4?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla,

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 environ 2000 lignes avec des titres tout le 10 lignes omgivning.
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,

Letar bara efter ett enkelt sätt att göra det så att om "B2" har valt "Ja" från datavalideringslistan, skulle cell B3 rensa dess data... och vice versa: Om "B3" har valt "Ja" från datavalideringslistan, cell "B2" skulle rensa dess data.

I grund och botten B2 or B3 kan säga "Ja"(från datavalideringslistan) men aldrig samtidigt, den ena ska rensa den andra.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Jeff,
Följande VBA-kod kan göra dig en tjänst. Ge det ett försök.
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
Denna kommentar minimerades av moderatoren på webbplatsen
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più righe e colonne) i basen al valore di un'altra cella. es: se la cella A2 è inferiore di 12, il quadrato con vertici opposto C2 : F4 venga cancellato.
Grazie mille
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Pietro,
Förlåt att jag inte riktigt förstår din fråga. Har du något emot att ladda upp en skärmdump av din data?
Denna kommentar minimerades av moderatoren på webbplatsen
Помогите с решением, VBA не знаю. Мне нужно при изменении ячейки удалить данные из другой и чтобы это дейстовало весь столбец.
Меняю А2 удаляется из G2, меняю А3 удаляется из G3, меняю A6 удаляется из G6 och т.д.

Privata delarkivsförändring (ByVal-mål som område)
Om inte skära (Mål, intervall("A2")) är ingenting då
Range("G2"). ClearContents
End If
End Sub


Данный код хорош для одной ячейки, а как его размножить на все ячейки столбца?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Наталья,
Följande VBA-kod kan hjälpa dig att lösa problemet. Vänligen ge det ett försök.

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
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,

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

Lieben Gruß Mathias
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Mathias,
Om du inte kan hitta motsvarande tangent på tangentbordet. Du kan bara klicka på Save knapp i Fönstret Microsoft Visual Basic Applications för att spara koden och sedan stänga det här fönstret manuellt.
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,
Koden nedan fungerar som annonserat men följande problem uppstår:

För det första, när du ändrar storlek på den måltabell, rensas all tabelldata OCH, alla rubriker utom kolumn 1 märks om till "Kolumn1, Kolumn2, etc. OCH arbetsboken sparar sig själv och avbryter ångra.

För det andra, när jag tar bort en tabellrad, får jag ett "Run-time error 1004 (Metodoffset för objektintervall misslyckades.


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


Någon aning om vad som kan vara fel?

Tack på förhand!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, det är en bas för data på OFFICE ONLINE och genom ONEDRIVE, quiero que al PONER "CANCELADO" eller "NOSHOW" eliminerar el contenido de la fila seleccionada.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej ängel,
VBA-koden fungerar inte i Office Online. Beklagar olägenheten.
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL