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

Як підрахувати кількість змін клітинки в Excel?

Для підрахунку кількості змін клітинки в Excel ця стаття може вам допомогти.

Кількість змін клітинки за допомогою коду VBA


Кількість змін клітинки за допомогою коду VBA


Будь ласка, виконайте наступні дії, щоб підрахувати кількість змін клітинки в Excel.

1. На робочому аркуші потрібно підрахувати загальні зміни зазначеної комірки, клацнути правою кнопкою миші вкладку аркуша, а потім клацнути Переглянути код з контекстного меню. Дивіться знімок екрана:

2. На відкритті Microsoft Visual Basic для додатків вікно, скопіюйте та вставте нижче код VBA у вікно коду.

Код VBA: підраховує кількість змін клітинки в 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

примітки: У коді B9 - це клітина, якій потрібно підрахувати її зміни, а C9 - клітина, щоб заповнити результат підрахунку. Будь ласка, змініть їх, як вам потрібно.

Відтепер, коли зміни, внесені в комірку B9, загальна кількість змін буде автоматично накладено та заповнено в комірці C9.


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (15)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Дуже дякую ! Це чудово працює.

Але як змусити ту саму функцію/правило працювати для діапазону комірок, наприклад, уздовж усього стовпця?

У мене є список контактів моєї компанії в різних рядках з їхніми контактними даними в різних стовпцях, і я хочу додати стовпець, який реєструє та підраховує кількість змін даної клітинки в кожному рядку. Код, який ви надали, чудово працює, але тільки для однієї клітинки за раз!

Я новачок у VBA, тому буду дуже вдячний за вашу підтримку.

Я спробував додати діапазон комірок до коду, тому замість «B9» і «C9», як наведено у прикладі вище, я погрався з такими варіантами, як «B:B», «C:C» або «B9 :B1000" та "C9:C1000", безуспішно.

Спасибо заранее,
Цей коментар був мінімізований модератором на сайті
Привіт Ян
Будь ласка, спробуйте наведений нижче код VBA. Сподіваюся, це може допомогти. Дякую за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg як діапазон, xCell як діапазон
Dim xSRg, xRRg як діапазон
Dim xFNum As Long

Встановити xSRg = діапазон ("B9:B1000")
Встановити xRRg = діапазон ("C9:C1000")

Application.EnableEvents = False
On Error Resume Next
Для xFNum = 1 До xSRg.count
Якщо ціль = xSRg.Item(xFNum) Тоді
xRRg.Item(xFNum).Значення = xRRg.Item(xFNum).Значення + 1
Application.EnableEvents = True
Exit Sub
End If
Далі xFNum
Application.EnableEvents = True
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт Кристал,

Це блискуче, у моїй матриці я використовував це для одного зі стовпців, але я намагався дублювати це в кількох стовпцях. У вас є рішення?

Спасибо заранее
Цей коментар був мінімізований модератором на сайті
Чи не могли б ви надати весь набір кодів? Я припускаю, що код Crystal інтегрується з іншим кодом? Спасибі
Цей коментар був мінімізований модератором на сайті
Привіт кристал,

У мене проблема з кодом. Якщо клітинка, наприклад, якщо я введу

B9 як "Apple", потім він збільшує C9 на 1
B10 як "м'яч", потім він збільшує C10 на 1
Однак якщо я ввійду
B11 знову як "Apple", тоді C9 буде збільшено на 1, а не C11

Здається, що він збільшує рядок з 1-м входженням значення, а не фактично відредагованим рядком.

Чи є спосіб просто збільшити клітинку в тому ж рядку, а не в попередньому?

Завдяки.
Цей коментар був мінімізований модератором на сайті
Ви це зрозуміли? Мене теж цікавить це для перевірки кількох клітинок. Ще не пробував.
Цей коментар був мінімізований модератором на сайті
Привіт Кевін

Наступний код може допомогти вам вирішити проблему. Дякую за коментар.
Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg як діапазон, xCell як діапазон
Dim xSRg, xRRg як діапазон
Dim xFNum As Long

Встановити xSRg = діапазон ("B9:B1000")
Встановити xRRg = діапазон ("C9:C1000")

Application.EnableEvents = False
On Error Resume Next
Для xFNum = 1 До xSRg.count
Якщо ціль = xSRg.Item(xFNum) Тоді
xRRg.Item(xFNum).Значення = xRRg.Item(xFNum).Значення + 1
Application.EnableEvents = True
Exit Sub
End If
Далі xFNum
Application.EnableEvents = True
End Sub
Цей коментар був мінімізований модератором на сайті
Gracias de antemano por el aporte, muy útil, sin embargo, quisiera pedir su ayuda a fin de reiniciar el contador a cero cuando sea necesario, es decir, luego de contar las veces que se modificó la celda, quilaver a celallro комензар. podrás ayudarme. Дякую!
Цей коментар був мінімізований модератором на сайті
Привіт всім,

Рішення, наведене в розділі «Кількість змін комірки за допомогою коду VBA», є хорошим, якщо ми відстежуємо зміни лише в ОДНІЙ КЛІТІНИ. Підкажіть, будь ласка, які зміни потрібні, якщо відстеження буде здійснюватися для кількох осередків. У разі кількох клітинок інкрементальний лічильник має з’явитися поруч із коміркою, для якої відстежується зміна значення.
Цей коментар був мінімізований модератором на сайті
Чекаємо допомоги та допомоги, щоб мати певний код VBA, який можна застосувати до кількох клітинок на одному аркуші.
Цей коментар був мінімізований модератором на сайті
Привіт Шиджу!
Будь ласка, спробуйте наведений нижче код VBA. Дякую за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg як діапазон, xCell як діапазон
Dim xSRg, xRRg як діапазон
Dim xFNum As Long

Встановити xSRg = діапазон ("B9:B1000")
Встановити xRRg = діапазон ("C9:C1000")

Application.EnableEvents = False
On Error Resume Next
Для xFNum = 1 До xSRg.count
Якщо ціль = xSRg.Item(xFNum) Тоді
xRRg.Item(xFNum).Значення = xRRg.Item(xFNum).Значення + 1
Application.EnableEvents = True
Exit Sub
End If
Далі xFNum
Application.EnableEvents = True
End Sub
Цей коментар був мінімізований модератором на сайті
команда,

Коли я спробував використовувати:

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg як діапазон, xCell як діапазон
Dim xSRg, xRRg як діапазон
Dim xFNum As Long

Встановити xSRg = діапазон ("B9:B1000")
Встановити xRRg = діапазон ("C9:C1000")

обережно змінюючи клітинки діапазону та цілі відносно P2:P200 і X2:X200 відповідно, я не підраховую кількість змін у стовпці X, незважаючи на те, що я намагаюся змінити клітинки в кількох рядках у P2:P200.

Будь-яка допомога буде дуже вдячна.

привіт
JT
Цей коментар був мінімізований модератором на сайті
Чи може хтось допомогти мені досягти кодування для підрахунку часу, коли клітинка була змінена на "Повторна перевірка", і чи можна це застосувати до запису стовпця.
Цей коментар був мінімізований модератором на сайті
Quisiera que me ayudaran a reiniciar el contador a cero cuando lo requiera, es decir, la celda c9 llevarla a cero y comenzar a contar b9 nuevamente.
Цей коментар був мінімізований модератором на сайті
Привіт, FELIX MARIÑO!
Будь ласка, додайте наступний код після коду, наданого в цій публікації. Коли вам потрібно скинути клітинку, клацніть будь-які слова в коді, а потім натисніть клавішу F5, щоб запустити її.
Sub CleaRCount()
'Updated by Extendoffice 20220527
    xCount = 0
    Range("c9") = 0
End Sub
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця