Funkcje VBA LICZ.JEŻELI i LICZ.JEŻELI

Ten samouczek pokaże Ci, jak korzystać z funkcji LICZ.JEŻELI i LICZ.WARUNKI programu Excel w VBA

VBA nie ma odpowiednika funkcji LICZ.JEŻELI lub LICZ.WARUNKI, których można użyć - użytkownik musi korzystać z wbudowanych funkcji Excela w VBA za pomocą Funkcja arkusza roboczego obiekt.

COUNTIF Funkcja arkusza roboczego

Obiekt WorksheetFunction może służyć do wywoływania większości funkcji programu Excel dostępnych w oknie dialogowym Wstaw funkcję w programie Excel. Jedną z nich jest funkcja LICZ.JEŻELI.

123 PodtestLicznikJeżeli()Zakres("D10") = Application.WorksheetFunction.CountIf(Range("D2:D9"), ">5")Napis końcowy

Powyższa procedura zliczy tylko komórki w zakresie (D2:D9), jeśli mają wartość 5 lub większą. Zauważ, że ponieważ używasz znaku większego niż, kryteria większe niż 5 muszą być w nawiasach.

Przypisywanie wyniku LICZ.JEŻELI do zmiennej

Możesz chcieć użyć wyniku formuły w innym miejscu w kodzie, zamiast zapisywać go bezpośrednio z powrotem do zakresu programu Excel. W takim przypadku możesz przypisać wynik do zmiennej, która będzie używana później w kodzie.

1234567 Sub AssignSumIf Variable()Przyciemnij wynik jako Double'Przypisz zmiennąwynik = Application.WorksheetFunction.CountIf(Range("D2:D9"), ">5")'Pokaż wynikMsgBox "Liczba komórek o wartości większej niż 5 to " i wynikNapis końcowy

Korzystanie z funkcji LICZ

Funkcja LICZ.JEŻELI jest podobna do funkcji LICZ.JEŻELI WorksheetFunction, ale umożliwia sprawdzenie więcej niż jednego kryterium. W poniższym przykładzie formuła obliczy liczbę komórek w D2 do D9, gdzie cena sprzedaży jest większa niż 6 ORAZ cena kosztu jest większa niż 5.

123 Sub UżywającLicznikJeżeli()Range("D10") = WorksheetFunction.CountIfs(Range("C2:C9"), ">6", Range("E2:E9"), ">5")Napis końcowy

Używanie LICZ.JEŻELI z obiektem zakresu

Możesz przypisać grupę komórek do obiektu Range, a następnie użyć tego obiektu Range z Funkcja arkusza roboczego obiekt.

123456789 PodtestCountIFRange()Dim rngCount jako zakres'przypisz zakres komórekUstaw rngCount = Zakres("D2:D9")'użyj zakresu we wzorzeZakres("D10") = WorksheetFunction.SUMIF(rngCount, ">5")'zwolnij obiekty zasięguUstaw rngCount = NicNapis końcowy

Korzystanie z funkcji LICZ.JEŻELI na obiektach o wielu zakresach

Podobnie możesz użyć opcji LICZ.WARUNKI na wielu obiektach zakresu.

123456789101112 PodtestCountMultipleRanges()Dim rngCriteria1 jako zakresDim rngCriteria2 jako zakres'przypisz zakres komórekUstaw rngCriteria1= Zakres("D2:D9")Ustaw rngCriteria2 = Zakres("E2:E10")'użyj zakresów we wzorzeZakres("D10") = WorksheetFunction.CountIfs(rngCriteria1, ">6", rngCriteria2, ">5")'zwolnij obiekty zasięguUstaw rngCriteria1 = NicUstaw rngCriteria2 = NicNapis końcowy

LICZ.JEŻELI Formuła

Kiedy używasz Funkcja arkusza roboczego.LICZ.JEŻELI aby dodać sumę do zakresu w arkuszu, zwracana jest wartość statyczna, a nie elastyczna formuła. Oznacza to, że gdy zmienią się Twoje dane w Excelu, wartość zwrócona przez Funkcja arkusza roboczego nie zmieni się.

W powyższym przykładzie procedura policzyła ilość komórek z wartościami w zakresie (D2:D9), gdzie cena sprzedaży jest większa niż 6, a wynik został umieszczony w D10. Jak widać na pasku formuły, ten wynik jest liczbą, a nie formułą.

Jeśli którakolwiek z wartości zmieni się w Range(D2:D9), wynik w D10 będzie NIE reszta.

Zamiast używać Arkusz Funkcja.SumIf, możesz użyć VBA, aby zastosować funkcję SUMA.JEŻELI do komórki za pomocą Formuła lub FormułaR1C1 metody.

Metoda formuły

Metoda formuł pozwala wskazać konkretny zakres komórek, np.: D2:D9, jak pokazano poniżej.

123 PodtestLicznikJeżeli()Zakres("D10").FormułaR1C1 ="=LICZ.JEŻELI(D2:D9;"">5"")"Napis końcowy

FormułaR1C1 Metoda

Metoda FormulaR1C1 jest bardziej elastyczna, ponieważ nie ogranicza użytkownika do określonego zakresu komórek. Poniższy przykład da nam taką samą odpowiedź jak powyższy.

123 PodtestLicznikJeżeli()Zakres("D10").FormułaR1C1 = "=LICZ.JEŻELI(R[-8]C:R[-1]C;"">5"")"Napis końcowy

Aby jednak formuła była jeszcze bardziej elastyczna, możemy zmienić kod tak, aby wyglądał tak:

123 PodtestLicznikJeżeli()ActiveCell.FormulaR1C1 = "=LICZ.JEŻELI(R[-8]C:R[-1]C;"">5"")"Napis końcowy

Gdziekolwiek jesteś w arkuszu, formuła policzy komórki spełniające kryteria bezpośrednio nad nim i umieści odpowiedź w ActiveCell. Do zakresu wewnątrz funkcji LICZ.JEŻELI należy odwoływać się przy użyciu składni Wiersz (R) i Kolumna (C).

Obie te metody umożliwiają korzystanie z formuł Dynamic Excel w VBA.

W D10 będzie teraz formuła zamiast wartości.

Twój tekst linku

wave wave wave wave wave