Изтеглете примерната работна книга
Този урок ще ви покаже как да броите или сумирате клетки с определен цвят на фона, използвайки VBA.
Помислете за следния диапазон в Excel.
Няма вградена функция Excel за преброяване на цветни клетки. Вместо това трябва да създадем потребителско дефинирана функция, използвайки VBA.
Брой клетки - Създайте персонализирана функция VBA
Преброяването на броя на клетките с определен цвят с помощта на VBA е въпрос на създаване на дефинирана от потребителя функция (UDF), която ще премине през всички клетки в диапазона и ще определи дали цветът на фона на всяка клетка съвпада с цвета на фона, който сте тестват за и след това използват тази функция в работния лист на Excel.
Във VBA създаваме функция за преброяване на избрани клетки.
12345678910111213141516 | Функция CountCellsByColor (rng като диапазон, ColorCell като диапазон) като двойноDim dblCount As DoubleDim rngCell As Range„Превъртете през всяка клетка в диапазонаЗа всеки 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 DoubleDim rngCell As Range„Превъртете през всяка клетка в диапазонаЗа всеки rngCell В rng'проверете дали цветът на интериора е същия цвят като клетката, която сте избралиАко rngCell.Interior.Color = ColorCell.Interior.Color ТогаваАко IsNumeric (rngCell.Value) = Вярно, тогава'добавете стойността към променливата си, ако цветът е правиленdblSum = dblSum + rngCell.ValueКрай АкоКрай АкоСледващия„Върнете стойността в ExcelSumCellsByColor = dblSumКрайна функция |
След това отново бихме използвали тази функция в работния лист, за да обобщим необходимите клетки.
1 | = SumCellsByColor (B2: E10, G7) |