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

Cum se numără numărul de modificări ale unei celule în Excel?

Pentru a calcula numărul de modificări ale unei celule în Excel, acest articol vă poate ajuta.

Numărați de câte ori o celulă este modificată cu codul VBA


Numărați de câte ori o celulă este modificată cu codul VBA


Procedați după cum urmează pentru a număra de câte ori o celulă este modificată în Excel.

1. În foaia de lucru trebuie să numărați modificările totale ale unei celule specificate, faceți clic dreapta pe fila foaie, apoi faceți clic pe Afișați codul din meniul contextual. Vedeți captura de ecran:

2. În deschidere Microsoft Visual Basic pentru aplicații fereastra, vă rugăm să copiați și să lipiți mai jos codul VBA în fereastra Cod.

Cod VBA: numărați de câte ori este modificată o celulă în Excel

Dim xCount As Integer

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    If Target = Range("B9") Then
        xCount = xCount + 1
        Range("C9").Value = xCount                                     
    End If
    Application.EnableEvents = False
    Set xRg = Application.Intersect(Target.Dependents, Me.Range("B9"))
    If Not xRg Is Nothing Then
        xCount = xCount + 1
        Range("C9").Value = xCount
    End If
    Application.EnableEvents = True
End Sub

notițe: În cod, B9 este celula de care aveți nevoie pentru a număra modificările sale, iar C9 este celula pentru a completa rezultatul numărării. Vă rugăm să le schimbați după cum aveți nevoie.

De acum înainte, când modificările efectuate în celula B9, numărul total de modificări vor fi suprapuse și completate automat în celula C9.


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-2019 și 365. Suportă toate limbile. Implementare ușoară în întreprindere sau organizație. Funcții complete de încercare gratuită de 30 de zile. Garanție de restituire 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 în fiecare zi!
fundul officetab
Comentarii (15)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc foarte mult ! Acest lucru funcționează grozav.

Dar cum faci ca aceeași funcție/regulă să funcționeze pentru o serie de celule, de-a lungul unei întregi coloane, de exemplu?

Am o listă a persoanelor de contact ale companiei mele pe diferite rânduri, cu detaliile lor de contact în coloane diferite și vreau să adaug o coloană care înregistrează și numără de câte ori o anumită celulă de-a lungul fiecărui rând este schimbată. Codul pe care l-ați dat funcționează excelent, dar numai pentru o celulă la un moment dat!

Sunt nou în VBA, așa că aș aprecia foarte mult sprijinul dumneavoastră.

Am încercat să adaug o serie de celule în cod, așa că în loc de „B9” și „C9”, așa cum este prezentat în exemplul de mai sus, m-am jucat cu variații precum „B:B”, „C:C” sau „B9”. :B1000" și "C9:C1000", fără niciun succes.

Multumesc în avans,
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Jan,
Vă rugăm să încercați codul VBA de mai jos. Sper că poate ajuta. Multumesc pentru comentariul tau.

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range, xCell As Range
Dim xSRg, xRRg As Range
Dim xFNum As Long

Set xSRg = Range("B9:B1000")
Setați xRRg = Interval("C9:C1000")

Application.EnableEvents = Fals
La data de eroare CV următoare
Pentru xFNum = 1 To xSRg.count
Dacă țintă = xSRg.Item(xFNum) Atunci
xRRg.Item(xFNum).Value = xRRg.Item(xFNum).Valoare + 1
Application.EnableEvents = Adevărat
Ieșiți din Sub
Final, dacă
Următorul xFNum
Application.EnableEvents = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Crystal,

Acest lucru este genial, pe matricea mea l-am folosit pe una dintre coloane, dar m-am străduit să dublez acest lucru pe mai multe coloane. ai o solutie?

Mulțumesc în avans
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ați putea furniza întregul set de coduri? Presupun că codul lui Crystal este integrat cu alt cod? Mulțumiri
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut cristal,

Am o problemă cu codul. Dacă celula de exemplu, dacă intru

B9 ca „Apple”, apoi crește C9 cu 1
B10 ca „Minge”, apoi crește C10 cu 1
Totuși, dacă intru
B11 ca „Apple” din nou, apoi C9 va fi incrementat cu 1, și nu C11

Se pare că incrementează rândul cu prima apariție a valorii și nu rândul editat efectiv.

Există o modalitate de a incrementa pur și simplu celula din același rând și nu pe un rând anterior?

Multumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ți-ai dat seama de asta. Și eu sunt interesat de acest lucru pentru verificarea mai multor celule. Nu l-am încercat încă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi Kevin,

Următorul cod vă poate ajuta să rezolvați problema. Multumesc pentru comentariul tau.
Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range, xCell As Range
Dim xSRg, xRRg As Range
Dim xFNum As Long

Set xSRg = Range("B9:B1000")
Setați xRRg = Interval("C9:C1000")

Application.EnableEvents = Fals
La data de eroare CV următoare
Pentru xFNum = 1 To xSRg.count
Dacă țintă = xSRg.Item(xFNum) Atunci
xRRg.Item(xFNum).Value = xRRg.Item(xFNum).Valoare + 1
Application.EnableEvents = Adevărat
Ieșiți din Sub
Final, dacă
Următorul xFNum
Application.EnableEvents = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Thanks of antemano por el aporte, muy útil, sin embargo, quisiera solicita su help a fin de reiniciar el contador a cero when sea necesario, es decir, luego de contar las times that se modificó la celda, quisiera llevarla a cero and volver a începe. poti sa ma ajuti. Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua tuturor,

Soluția furnizată la „Numărul de ori când o celulă este schimbată cu codul VBA” este bună dacă urmărim doar modificările aduse unei singure celule. Vă rugăm să sugerați ce modificări sunt necesare, dacă urmărirea se face pentru mai multe celule. În cazul mai multor celule, contorul incremental ar trebui să apară lângă celula pentru care este urmărită modificarea valorii.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Așteptăm cu nerăbdare ajutor și asistență pentru a avea un cod VBA specific, care poate fi aplicat mai multor celule dintr-o singură foaie de lucru.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Shiju,
Vă rugăm să încercați codul VBA de mai jos. Multumesc pentru comentariu.

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range, xCell As Range
Dim xSRg, xRRg As Range
Dim xFNum As Long

Set xSRg = Range("B9:B1000")
Setați xRRg = Interval("C9:C1000")

Application.EnableEvents = Fals
La data de eroare CV următoare
Pentru xFNum = 1 To xSRg.count
Dacă țintă = xSRg.Item(xFNum) Atunci
xRRg.Item(xFNum).Value = xRRg.Item(xFNum).Valoare + 1
Application.EnableEvents = Adevărat
Ieșiți din Sub
Final, dacă
Următorul xFNum
Application.EnableEvents = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Echipă,

Când am încercat să folosesc:

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg As Range, xCell As Range
Dim xSRg, xRRg As Range
Dim xFNum As Long

Set xSRg = Range("B9:B1000")
Setați xRRg = Interval("C9:C1000")

Schimbând cu atenție celulele Interval și țintă față de P2:P200 și, respectiv, X2:X200, nu fac contorizarea modificărilor în coloana X, în ciuda faptului că încerc să schimb celulele pe mai multe rânduri pe P2:P200.

Orice ajutor ar fi foarte apreciat.

În ceea ce priveşte
JT
Acest comentariu a fost redus la minimum de moderatorul de pe site
Poate cineva să mă ajute să obțin codificarea pentru Numărarea timpului în care o celulă a fost schimbată în „Revalidare” și poate fi aplicată în josul intrării unei coloane.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Quisiera que me ajutam a reiniciar el contador a cero când lo requiera, es decir, la celda c9 llevarla a cero y comenzar a contar b9 nuevamente.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună FELIX MARIÑO,
Vă rugăm să adăugați următorul cod după codul furnizat în această postare. Când trebuie să resetați celula, faceți clic pe orice cuvânt din cod, apoi apăsați tasta F5 pentru ao rula.
Sub CleaRCount()
'Updated by Extendoffice 20220527
    xCount = 0
    Range("c9") = 0
End Sub
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0  Caractere
Locații sugerate