„Excel“ - skaičiuokite, jei makrokomandas pagrįstas keliais kriterijais

Problema

Ar kas nors gali man padėti, jei skaičiuojate makrokomandą, pagrįstą keliais kriterijais. Pridėjau pavyzdinį failą: čia

Man reikia žodžio „False“ skaičiaus skirtinguose intervaluose, pradedant nuo c1 stulpelio ir toliau. Makro turėtų suteikti man skirtingo diapazono skaičių stulpeliuose C: C ir sustoti tol, kol kitame langelyje nėra nė vieno.

Duomenų diapazonai gali keistis kasdien. taigi noriu, kad makrokomandas suskirstytų į diapazonus, kurie yra tuščios C stulpelio ląstelės ir sustoja, jei kitame ląstelėje nėra nieko.

Sprendimas

Išbandykite šį makrokomandą:

 Sub bandymas ()

Dim r as Range, j Kaip Integer, k Kaip Integer, m Kaip Integer

Darbalapiai („sheet2“)

j = ląstelės (eilutės.Skaičiuoti, "C"). Pabaiga (xlUp) .Nustatymas (1, 0).

k = j

Padarykite

Jei k = 1, tada išeiti

Jei ląstelės (k, "C"). Offset (-2, 0) = "" Tada

Nustatyti r = ląstelės (k, "c").

Kitas

Nustatyti r = intervalas (ląstelės (k, "C"). Offset (-1, 0), ląstelės (k, "c"). Offset (-1, 0) .End (xlUp))

Baigti Jei

msgbox r.Address

m = WorksheetFunction.CountIf (r, "false")

msgbox m

Ląstelės (k, c) = m

Jei langeliai (k, "c"). Pabaiga (xlUp) .Address = "$ C $ 1", tada išeikite iš sub

k = ląstelės (k - 1, "c"). Pabaiga (xlUp) .Offset (-1, 0).

msgbox k

Loop

Pabaiga

Pakartotinis atšaukimas ()

Dim r as Range, c as Range

Darbalapiai („sheet2“)

Nustatyti r = intervalas (diapazonas („C1“), ląstelės (eilutės.Skaičiuoti, „C“). Pabaiga (xlUp)

Kiekvienam c r

Jei WorksheetFunction.IsNumber (c) Tada c.Clear

Kitas c

Pabaiga

Ačiū venkat1926 už šį patarimą forume.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai