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

Hur spårar jag ändringar utan att dela arbetsbok?

Normalt, när du använder funktionen Spåra ändringar i Excel, kommer arbetsboken att delas samtidigt, detta kommer att vara irriterande eftersom vissa av funktionerna i Excel inaktiveras. Hur kunde du spåra ändringar utan att dela arbetsbok? Här kommer jag att rekommendera en VBA-kod för dig.

Spåra ändringar utan att dela arbetsbok med VBA-kod


pil blå höger bubbla Konvertera text till tabell i Outlook

Det finns inget direkt sätt för dig att lösa detta problem, men du kan använda en flexibel VBA-kod för att lösa det, gör så här:

1. Högerklicka på arkfliken som du vill spåra ändrade celler och välj Visa kod från snabbmenyn, i poppade ut Microsoft Visual Basic för applikationer kopiera och klistra in följande kod i tomt Modulerna:

VBA-kod: Spåra ändringar utan att dela arbetsbok:

Private Sub Worksheet_Change(ByVal Target As Range)
  'Updateby Extendoffice
    Const xRg As String = "A1:Z1000"
    Dim strOld As String
    Dim strNew As String
    Dim strCmt As String
    Dim xLen As Long
    With Target(1)
        If Intersect(.Cells, Range(xRg)) Is Nothing Then Exit Sub
        strNew = .Text
        Application.EnableEvents = False
        Application.Undo
        strOld = .Text
        .Value = strNew
        Application.EnableEvents = True
        strCmt = "Edit: " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
        Application.UserName & Chr(10) & "Previous Text :- " & strOld
        If Target(1).Comment Is Nothing Then
            .AddComment
        Else
            xLen = Len(.Comment.Shape.TextFrame.Characters.Text)
        End If
        With .Comment.Shape.TextFrame
            .AutoSize = True
            .Characters(Start:=xLen + 1).Insert IIf(xLen, vbLf, "") & strCmt
        End With
    End With
End Sub

doc spårbyte utan delning 1

Anmärkningar: I ovanstående kod, A1: Z1000 är det dataområde som du vill spåra ändringar.

2. Spara och stäng sedan det här kodfönstret, när du ändrar värdena i några celler inom det angivna intervallet du ställer in i koden spåras cellerna och arbetsboken delas inte. Se skärmdump:

doc spårbyte utan delning 2


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 (14)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Bra jobbat. Tyvärr finns det några problem med din kod. - Det kommer att lägga till en kommentar även på den första posten i cellen. Hur kan jag få den att spåra ändringar från den andra posten, inte den första? - När jag väl har skrivit in ett värde i en cell kan jag inte göra "Ångra". – Det går inte med bord. Försök att använda på en tabell och försök sedan lägga till eller ta bort en rå och koden kommer att krascha. Jag önskar verkligen att jag har kunskapen för att få koden att fungera som jag vill ha den enligt beskrivningen ovan.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har samma problem. Knapparna "Ångra" och "Gör om" fungerar inte längre. Finns det någon lösning på detta?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag försökte använda denna VBA-kod i mitt excelark. Men det gav mig fel. Jag vet inte varifrån detta makro ska anropas och vad är argumentet för funktionen du har angett när det anropas.
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att registrera ändringarna för alla flikar i en arbetsbok och registrera ändringarna i ett nytt kalkylblad? DET skulle vara fantastiskt ... och jag kan inte hitta någon information på internet med den här typen av spårningsprocess.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jfjoyner, För att ändra den här koden för alla blad och spela in spårändringarna till ett annat blad, använd koden nedan:
Obs: Vänligen lägg in den här koden i modulen ThisWorkbook.
Option Explicit
Dim mStrRgAddress As String
Dim mStrRgValue As String

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Const xRg As String = "A1:Z1000"
Const xSheetName As String = "Record sheet" 'The sheet that you want to put the track changes, please change the sheet name to your own.
Dim strOld As String
Dim strNew As String
Dim strCmt As String
Dim xLen As Long
Dim xSheet As Worksheet
Dim xRgCell As Range
Dim xRgCell2 As Range
On Error Resume Next
Set xSheet = Application.Sheets.Item(xSheetName)
If mStrRgAddress <> "" Then
Set xRgCell = Range(mStrRgAddress)
If xRgCell.Text <> mStrRgValue Then
strCmt = mStrRgAddress & " : " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
Application.UserName & Chr(10) & "Previous Text :- " & mStrRgValue
Set xRgCell2 = xSheet.Range("a1048576").End(xlUp)
If xRgCell2.AddressLocal = xSheet.Range("A1").AddressLocal Then
If xRgCell2.Value <> "" Then
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
Else
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
xRgCell2.Value = strCmt
End If
End If
If xSheet.Name = Sh.Name Then Exit Sub
mStrRgValue = Target.Text
mStrRgAddress = Target.AddressLocal(False, False, , True)
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Tack, det här är bra, men jag kan inte få det att fungera. Jag antar att det körs automatiskt, vilket betyder att du inte behöver klicka på "Kör"? Jag bytte namn på ett kalkylblad för att säga {--TRACK_CHANGES--} för att följa instruktionerna du lämnade i grönt. Än så länge spelar den inte in någonting. Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack igen, skyyang. Jag märkte också att när jag klistrade in detta i modulen för denna arbetsbok, började mitt stora kalkylblad att beräkna kontinuerligt och slutade inte. Jag kan ingenting om VBA-programmering, men jag hittade den här diskussionen om samma ämne. Det kan förklara varför beräkningen pågår i det oändliga. https://www.mrexcel.com/board/threads/continuous-calculation-wont-stop.1179541/page-6#posts 
Problemet på denna webbplats var:Men när problemet med kontinuerlig beräkning väl börjar är det ihållande. Om jag trycker på Esc-tangenten avbryts beräkningen, men den startar omedelbart igen om jag inte byter till Manuell beräkning. Manuellt beräkningsläge fungerar bra tills jag kör något av makron, som sedan avslutas med att återaktivera AutoCalc... Jag har gått igenom varje kalkylblad i modellen och kört felkontroll utan resultat.
Deras slutsats var: Detta är sant: när du hänvisar till ett formulärobjekt eller dess egenskap (frmBudget.startupposition = 3) - laddas objektet sedan tills du laddar ner det eller återställer ditt projekt (Tillståndsförlust - Vid denna tidpunkt återställs ALLA variabler och alla förlorade värden)
Denna kommentar minimerades av moderatoren på webbplatsen
Hej jfjoyner3, hur mår du. Som du kan se i de två skärmdumparna ändrade jag "rekordsbladet" till "ark2" i VBA-koden. 
Sedan återgick jag till Excel-arbetsboken. Efter att jag gjort några ändringar i ark1, registreras alla dessa ändringar i ark2.
När det gäller problemet med kontinuerlig beräkning, kan du skicka oss skärmdumparna eller videon av ditt problem? Så vi kan fullt ut förstå vad som händer här. Tack! 
Med vänlig hälsning, Mandy
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej jfjoyner3, du är välkommen. När du har sparat kalkylarket med makrot VBA-koden kommer makrot att starta automatiskt varje gång du öppnar kalkylarket. Du behöver inte starta den manuellt. Alla frågor, vänligen kontakta oss. Ha en trevlig dag! Med vänlig hälsning, Mandy   
Denna kommentar minimerades av moderatoren på webbplatsen
MandyZhou, tack. Startar detta makro automatiskt när jag öppnar kalkylarket? Eller måste jag starta den manuellt? 
Problemet med kontinuerlig beräkning är relaterat till en annan app. 
Denna kommentar minimerades av moderatoren på webbplatsen
Hej jfjoyner3, För det första, efter att du kopierat vår VBA-kod till ThisWorkbook-modulen, körs koden automatiskt. För det andra fungerar vår VBA-kod. Se de två skärmdumparna jag laddade upp i den här kommentaren.
Denna kommentar minimerades av moderatoren på webbplatsen
Mandyzhou, tack igen för denna detaljerade vägledning. Jag får ett syntaxfel och det pekar mig på den här raden:

Om mStrRgAddress <> "" Då

Kan du vägleda att ändra detta och ta bort syntaxfelet?
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Fångar denna MAcro ändringar på formelvärdena varje gång min datamodell uppdateras?
Det finns inga kommentarer här ännu
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