Завантажте зразок робочої книги
Цей підручник покаже вам, як підрахувати або підсумувати клітинки певного кольору фону за допомогою VBA.
Розглянемо наступний діапазон в Excel.
Немає вбудованої функції Excel для підрахунку кольорових клітинок. Замість цього ми повинні створити призначену користувачем функцію за допомогою VBA.
Count Cells - Створення користувацької функції VBA
Підрахунок кількості клітинок певного кольору за допомогою VBA-це питання створення визначеної користувачем функції (UDF), яка буде перебирати всі клітинки в діапазоні та визначати, чи колір фону кожної клітинки відповідає кольору фону, який ви перевіряють, а потім використовують цю функцію на робочому аркуші Excel.
У VBA ми створюємо функцію для підрахунку виділених клітинок.
12345678910111213141516 | Функція CountCellsByColor (rng як діапазон, ColorCell як діапазон) як подвійнийЗменшити dblCount як подвійнеПриглушити клітинку як діапазон'Цикл через кожну клітинку в діапазоніДля кожного rngCell У rng'перевірте, чи колір інтер’єру того ж кольору, що і вибрана вами клітинкаЯкщо rngCell.Interior.Color = ColorCell.Interior.Color ТодіЯкщо IsNumeric (rngCell.Value) = Істина'збільште кількість на 1, якщо колір правильний.dblCount = dblCount + 1Закінчити ЯкщоЗакінчити ЯкщоДалі'Поверніть значення в ExcelCountCellsByColor = dblCountФункція завершення |
Потім скористайтеся цією функцією на аркуші, щоб повернути значення.
1 | = CountCellsByColor (B2: E10, G4) |
- Клацніть помаранчеву клітинку в G4 і натисніть Вставити функцію.
- Виберіть Визначений користувачем як категорію, а потім виберіть CountCellsByColor як функцію для використання.
- Натисніть в порядку.
- Виділіть діапазон, що містить усі кольорові клітинки.
- Виберіть ColorCell, а потім Клацніть в порядку.
Повторіть процес, щоб підрахувати клітинки з кольором зеленого фону.
1 | = CountCellsByColor (B2: E10, G5) |
Сума клітинок - Створіть власну функцію VBA
Ми створюємо подібну користувацьку функцію у VBA для підсумовування значень комірок певного кольору.
12345678910111213141516 | Функція SumCellsByColor (rng як діапазон, ColorCell як діапазон) як подвійнийDim dblSum As DoubleПриглушити клітинку як діапазон'Цикл через кожну клітинку в діапазоніДля кожного rngCell У rng'перевірте, чи колір інтер’єру того ж кольору, що і вибрана вами клітинкаЯкщо rngCell.Interior.Color = ColorCell.Interior.Color ТодіЯкщо IsNumeric (rngCell.Value) = Істина'додайте значення до своєї змінної, якщо колір правильнийdblSum = dblSum + rngCell.ValueЗакінчити ЯкщоЗакінчити ЯкщоДалі'Поверніть значення в ExcelSumCellsByColor = dblSumФункція завершення |
Потім ми ще раз використаємо цю функцію на робочому аркуші, щоб підсумувати необхідні клітинки.
1 | = SumCellsByColor (B2: E10, G7) |