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

Cum să urmăriți modificările fără a partaja registrul de lucru?

În mod normal, atunci când aplicați caracteristica Track Changes în Excel, registrul de lucru va fi partajat în același timp, acest lucru va fi enervant deoarece unele dintre caracteristicile din Excel vor fi dezactivate. Cum ați putea urmări modificările fără a partaja registrul de lucru? Aici, vă voi recomanda un cod VBA.

Urmăriți modificările fără a partaja registrul de lucru cu codul VBA


săgeată albastru dreapta balon Convertiți textul în tabel în Outlook

Nu există o modalitate directă de a rezolva această problemă, dar puteți aplica un cod VBA flexibil pentru a o rezolva, faceți următoarele:

1. Faceți clic dreapta pe fila de foaie pe care doriți să o urmăriți celulele modificate și alegeți Afișați codul din meniul contextual, în fereastra pop-out Microsoft Visual Basic pentru aplicații fereastra, copiați și lipiți următorul cod în spațiul gol Module:

Cod VBA: urmăriți modificările fără a partaja registrul de lucru:

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

modificarea piesei doc fără partajarea 1

notițe: În codul de mai sus, A1: Z1000 este intervalul de date pe care doriți să îl urmăriți.

2. Apoi, salvați și închideți această fereastră de cod, acum, când modificați valorile din orice celule din intervalul specificat pe care l-ați setat în cod, celulele vor fi urmărite și registrul de lucru nu va fi partajat. Vedeți captura de ecran:

modificarea piesei doc fără partajarea 2


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (14)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna treaba. Din păcate, există unele probleme cu codul dvs. - Va adăuga un comentariu chiar și la prima intrare a celulei. Cum îl pot face să urmărească modificările de la a doua intrare, nu de la prima? - Odată ce introduc o valoare într-o celulă, nu pot face „Anulare”. - Nu merge cu mesele. Încercați să utilizați pe un tabel, apoi încercați să adăugați sau să ștergeți un raw și codul se va bloca. Îmi doresc foarte mult să am cunoștințele necesare pentru ca codul să funcționeze așa cum vreau eu, așa cum este descris mai sus.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeasi problema. Butoanele „Anulați” și „Refaceți” nu mai funcționează. Există vreo soluție pentru asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am încercat să folosesc acest cod VBA în foaia mea Excel. Dar mi-a dat erori. Nu știu de unde ar trebui apelată această macrocomandă și care este argumentul funcției pe care ați furnizat-o atunci când este apelată.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există vreo modalitate de a înregistra modificările pentru toate filele dintr-un registru de lucru și de a înregistra modificările într-o nouă foaie de calcul? ASTA ar fi minunat... și nu găsesc nicio informație pe internet cu acest tip de proces de urmărire.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, jfjoyner, Pentru a modifica acest cod pentru toate foile și pentru a înregistra modificările pe o altă foaie, vă rugăm să utilizați codul de mai jos:
Notă: Vă rugăm să introduceți acest cod în modulul 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
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc, este grozav, dar nu pot să funcționeze. Presupun că rulează automat, ceea ce înseamnă că nu este nevoie să faceți clic pe „Run”? Am redenumit o foaie de lucru pentru a spune {--TRACK_CHANGES--} pentru a urma instrucțiunile pe care le-ați lăsat în verde. Până acum, nu înregistrează nimic. Mulțumiri.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc din nou, skyyang. De asemenea, am observat că atunci când am lipit acest lucru în modulul pentru This Workbook, foaia mea mare de calcul a început să calculeze continuu și nu s-a oprit. Nu știu nimic despre programarea VBA, dar am găsit această discuție despre același subiect. Ar putea explica de ce calculul continuă la nesfârșit. https://www.mrexcel.com/board/threads/continuous-calculation-wont-stop.1179541/page-6#posts 
Problema de pe acest site web a fost:Dar odată ce începe problema de calcul continuu, este persistentă. Apăsarea tastei Esc întrerupe calculul, dar reîncepe imediat, dacă nu trec la Calc manual. Modul calc manual funcționează bine până când rulez oricare dintre macrocomenzi, care apoi se termină prin reactivarea AutoCalc... Am parcurs fiecare foaie de lucru din model și am rulat verificarea erorilor fără niciun rezultat.
Concluzia lor a fost: Acest lucru este adevărat: odată ce vă referiți la un obiect formular sau la proprietatea acestuia (frmBudget.startupposition = 3) - obiectul este apoi încărcat până când îl descărcați sau resetați proiectul (Pierderea stării - În acest moment TOATE variabilele sunt resetate și orice valoare pierdută)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună jfjoyner3, ce mai faci. După cum puteți vedea în cele două capturi de ecran, am schimbat „foaia de înregistrare” în „foaia2” în Codul VBA. 
Apoi am revenit la registrul de lucru Excel. După ce am făcut unele modificări în foaia1, toate aceste modificări sunt înregistrate în foaia2.
În ceea ce privește problema de calcul continuu, ați putea vă rugăm să ne trimiteți capturile de ecran sau videoclipul problemei dvs.? Deci putem înțelege pe deplin ce se întâmplă aici. Mulțumiri! 
Cu stimă, Mandy
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumesc foarte mult!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună jfjoyner3, Ești binevenit. După ce salvați foaia de calcul cu codul VBA macro, macrocomandă va porni automat de fiecare dată când deschideți foaia de calcul. Nu este nevoie să-l porniți manual. Orice întrebare, vă rugăm să nu ezitați să ne contactați. Să ai o zi bună! Salutări, Mandy   
Acest comentariu a fost redus la minimum de moderatorul de pe site
MandyZhou, mulțumesc. Această macrocomandă pornește automat când deschid foaia de calcul? Sau trebuie să-l pornesc manual? 
Problema de calcul continuu este legată de o altă aplicație. 
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună jfjoyner3, În primul rând, după ce copiați codul nostru VBA în modulul ThisWorkbook, codul rulează automat. În al doilea rând, codul nostru VBA funcționează. Vă rog să vedeți cele două capturi de ecran pe care le-am încărcat în acest comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mandyzhou, vă mulțumesc din nou pentru această îndrumare detaliată. Primesc o eroare de sintaxă și îmi indică această linie:

Dacă mStrRgAddress <> "" Atunci

Puteți să vă ghidați pentru a modifica acest lucru și a elimina eroarea de sintaxă?
Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Această macrocaptură se modifică asupra valorilor formulei de fiecare dată când modelul meu de date este actualizat?
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL