„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ą: čiaMan 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.