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

Hur registrerar jag förändrade värden i en cell i Excel?

Hur registrerar jag varje förändringsvärde för en cell som ofta förändras i Excel? Till exempel är originalvärdet i cell C2 100, när du ändrar nummer 100 till 200 kommer originalvärdet 100 automatiskt att visas i cell D2 för inspelning. Fortsätt för att ändra 200 till 300, nummer 200 kommer att införas i cell D3, ändra 300 till 400 visar 300 till D4 och så vidare. Metoden i den här artikeln kan hjälpa dig att uppnå det.

Spela in förändrade värden i en cell med VBA-kod


Spela in förändrade värden i en cell med VBA-kod


Nedanstående VBA-kod kan hjälpa dig att registrera alla förändrade värden i en cell i Excel. Gör så här.

1. I kalkylbladet innehåller cellen som du vill registrera ändrade värden, högerklicka på arkfliken och klicka sedan på Visa kod från snabbmenyn. Se skärmdump:

2. Sedan Microsoft Visual Basic för applikationer fönstret öppnas, vänligen kopiera nedan VBA-kod till kodfönstret.

VBA-kod: registrera förändrade värden i en cell

Dim xVal As String
'Update by Extendoffice 2018/8/22
Private Sub Worksheet_Change(ByVal Target As Range)
    Static xCount As Integer
    Application.EnableEvents = False
    If Target.Address = Range("C2").Address Then
        Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
    Else
        If xVal <> Range("C2").Value Then
         Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
        End If
    End If
    Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    xVal = Range("C2").Value
End Sub

Anmärkningar: I koden är C2 cellen som du vill spela in alla dess förändrade värden. D2 är cellen som du fyller i det första värdet på C2.

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

Från och med nu, varje gång du ändrar värden i cell C2, kommer de tidigare ändringsvärdena att registreras i D2 och cellerna under D2.


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-2019 och 365. Stöder alla språk. Enkel distribution 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 åt dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (47)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hi


Detta fungerar riktigt bra om värdet i C2 skrivs in varje gång, men det fungerar inte om C2 innehåller en formel. Finns det något sätt att göra samma sak men med en formel i C2?


Tack för denna enkla lösning.
Denna kommentar minimerades av moderatoren på webbplatsen
Om du får reda på hur du använder det om C2 innehåller en formel, vänligen berätta för mig hur du gjorde det. Jag verkar inte hitta hur man gör någonstans på internet.
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Koden har optimerats. Prova gärna och tack för din kommentar.

Dim xVal As String
Privata delarkivsförändring (ByVal-mål som område)
Statisk xCount Som heltal
Application.EnableEvents = False
Om Target.Address = Range("C2"). Adress Då
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
annars
If xVal <> Range("C2").Value Then
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("C2").Värde
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
HEJ,



OVAN VBS ENDAST C2 FLYTTA TILL D2,



INEED C2 TILL C55 FLYTTA TILL D2 TILL D55



KAN DU HJÄLPA OCH SKICKA TILL MIG alexmathew33@gmail.com
Denna kommentar minimerades av moderatoren på webbplatsen
Snälla hjälp mig med följande scenario:
Från blad 1:
A1=VÄRDE (Ändringar på grund av RTD med formel)
B2= VÄRDE1 (Ändringar på grund av RTD med formel)

Kopiera alla tidigare värden celler A1,B1 till ark2 i kolumner M,NOF Samma excel eller ark1 i ny arbetsbok

Dela gärna med mig till melukotahari@gmail.com

-Melukota
Denna kommentar minimerades av moderatoren på webbplatsen
KAN VI FÅ VBS FÖR Ovanstående
Denna kommentar minimerades av moderatoren på webbplatsen
Vad händer om cell C2 är en formel? Hur registrerar jag värdena för C2 om det är en formel?
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Koden har optimerats. Prova gärna och tack för din kommentar.

Dim xVal As String
Privata delarkivsförändring (ByVal-mål som område)
Statisk xCount Som heltal
Application.EnableEvents = False
Om Target.Address = Range("C2"). Adress Då
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
annars
If xVal <> Range("C2").Value Then
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("C2").Värde
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
HEJ,



OVAN VBS ENDAST C2 FLYTTA TILL D2,



INEED C2 TILL C55 FLYTTA TILL D2 TILL D55



KAN DU HJÄLPA OCH SKICKA TILL MIG alexmathew33@gmail.com
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag uppskattar verkligen den här handledningen...Jag försöker registrera det ändrade värdet på ett annat kalkylblad. Till exempel vill jag registrera värdet av ark1 C2 på ark2 D2. Kan du ge justerad kod?
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Kan posterna vara i Horisontell istället för Vertikal?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Skulle det vara möjligt för detta makro att spela in två separata celler i två separata kolumner? Dvs. Kan jag registrera alla värden från A1 i kolumn B och alla värden för C1 i kolumn D?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Prova metoden i den här artikeln:
Hur kommer jag ihåg eller sparar tidigare cellvärde för en ändrad cell i Excel?
https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Denna kommentar minimerades av moderatoren på webbplatsen
tack för detta men istället för att fortsätta för evigt, hur skulle jag kunna starta om den första cellen efter X antal gånger?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Menar du efter att ha spelat in X antal gånger, vill du starta om till det första postvärdet?
Förlåt, jag är inte säker på att jag fick din fråga. Skulle vara trevligt om du kunde ge en skärmdump av vad du försöker göra.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack

men vad kan jag göra om jag behöver upprepa det för många celler
Denna kommentar minimerades av moderatoren på webbplatsen
Tack

men vad kan jag göra om jag behöver upprepa det för en rå
Denna kommentar minimerades av moderatoren på webbplatsen
Peki bu kaydı yatay olarak nasıl kaydedeceğiz. Satırlara değil Sütunlara kaydetmesini istiyorum. Teşekkürler
Denna kommentar minimerades av moderatoren på webbplatsen
Hur sparar jag numret så fort det genereras inte efter att ett nytt nummer har genererats? Problemet jag har är att numret inte registreras direkt utan efter att ett andra nummer har skapats; detta betyder att varken cellen som jag spelar in eller cellen som är målet har numret...hur kan jag spela in så snart numret genereras? Tack för hjälpen!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej John,
Jag kan tyvärr inte hjälpa dig med det. Välkommen att ställa alla frågor i vårt forum: https://www.extendoffice.com/forum.html. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Skulle det vara möjligt att använda detta för mer än en cell?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Tack för koden, men jag har en fråga

Finns det något sätt att ändra koden, så att den registrerar värdet om cellen dagligen, eller på vissa dagar, som jag anger i en separat kolumn?


Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Prova detta

Dim xVal As String
Dim iVal Som heltal
Privata delarkivsförändring (ByVal-mål som område)
Statisk xCount Som heltal
iVal = Application.WorksheetFunction.Count(Range("F:F"), 1)
xCount = iVal
Application.EnableEvents = False
Om Target.Address = Range("C2"). Adress Då
Range("E3").Offset(xCount, 0).Value = Range("C2").Value
Range("F3").Offset(xCount, 0).Value = Nu
xCount = xCount + 1
annars
If xVal <> Range("C2").Value Then
Range("E3").Offset(xCount, 0).Value = Range("C2").Value
Range("F3").Offset(xCount, 0).Value = Nu
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("C2").Värde
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Jag försökte den här koden för C2-cellen som innehåller DDE-värden som ändras sekund för sekund. Jag använder följande kod men fungerar inte.

Dim xVal As String
Privata delarkivsförändring (ByVal-mål som område)
Statisk xCount Som heltal
Application.EnableEvents = False
Om Target.Address = Range("C2"). Adress Då
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
annars
If xVal <> Range("C2").Value Then
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("C2").Värde
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Vilken Excel-version använder du?
Denna kommentar minimerades av moderatoren på webbplatsen
det fungerar när jag skriver in data, det fungerar inte när jag streamar realtidsdata direkt till den här cellen (=RTD(.....)). hur kan jag få det att fungera med RTD?
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket för handledningarna, jag vill veta om det finns ett sätt att få bara en cell att bete sig som en vanlig miniräknare.
dvs denna cell ska kunna summera siffror som visas i en annan cell, samtidigt som den sista kumulativa siffran hålls synlig.
Denna andra cell kommer att vara nyckel-in-cellen eller aktiva cellen.
Exempelvis:
Cell 1: =2*5, svar visas i cell 2,
Cell 1: =3*6.8, Svar läggs till det tidigare värdet som härrör från (2*5) och visas fortfarande i cell 2.
Denna kommentar minimerades av moderatoren på webbplatsen
Formeln ovan fungerar inte för formler, bara för manuell inmatning. finns det något sätt att ändra kodningen så att den fungerar för celler som innehåller formel?



Dim xVal As String
'Uppdatera av Extendoffice 2018/8/22
Privata delarkivsförändring (ByVal-mål som område)
Statisk xCount Som heltal
Application.EnableEvents = False
Om Target.Address = Range("C2"). Adress Då
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
annars
If xVal <> Range("C2").Value Then
Range("D2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("C2").Värde
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Vänligen prova nedanstående VBA.



Dim xVal As String

Privata delarkivsförändring (ByVal-mål som område)

Statisk xCount Som heltal

Application.EnableEvents = False

Om Target.Address = Range("C2"). Adress Då

Range("D2").Offset(xCount, 0).Värde = xVal

xCount = xCount + 1

annars

If xVal <> Range("C2").Value Then

Range("D2").Offset(xCount, 0).Värde = xVal

xCount = xCount + 1

End If

End If

Application.EnableEvents = True

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

xVal = Range("C2").Värde

End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
fungerar inte för formler
Denna kommentar minimerades av moderatoren på webbplatsen
Helt bra, men jag måste tillämpa den här koden på 2 olika celler, och spara de ändrade värdena för varje cell i separata, motsvarande kolumner. Hur kan koden ändras? Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,

Prova metoden i den här artikeln:

Hur kommer jag ihåg eller sparar tidigare cellvärde för en ändrad cell i Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Denna kommentar minimerades av moderatoren på webbplatsen
Är det möjligt att anpassa detta och använda med DDE/RTD? Fungerar bra när man byter celler manuellt, men inte med DDE/RTD.
Denna kommentar minimerades av moderatoren på webbplatsen
Kan detta ändras för att fungera för flera celler i ett kalkylblad?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,

Prova metoden i den här artikeln:

Hur kommer jag ihåg eller sparar tidigare cellvärde för en ändrad cell i Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå! Jag försökte använda den här koden för att registrera varje förändring i värdet på en viss cell. Jag undrade dock om någon kunde hjälpa mig genom att modifiera den så att värdeförändringen samlas på en ANNAN flik och även så att den sparas varje gång arbetsboken stängs. Eftersom den liksom återställer sig själv varje gång arbetsboken öppnas utan att spara de tidigare värdena. Kod: Dim xVal As String
'Uppdatera av Extendoffice 2018/8/22
Privata delarkivsförändring (ByVal-mål som område)
Statisk xCount Som heltal
Application.EnableEvents = False
Om Target.Address = Range("J7"). Adress Då
Range("AB2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
annars
If xVal <> Range("J7").Value Then
Range("AB2").Offset(xCount, 0).Värde = xVal
xCount = xCount + 1
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xVal = Range("J7").Värde
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, tack för nedanstående. Snabb fråga....kan du återställa detta ibland så att du på din begäran kan få makrot att radera alla tidigare nummer och börja spela in nummer igen från cell D2? För tillfället registreras nummer D2, D3, D4, D5, D6 etc
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