Discussion:
zliczanie niepustych komórek
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Ola
2005-10-10 11:25:48 UTC
Permalink
W jaki sposób można zliczyć ilość komórek w jednej kolumnie, w których
znajdują się jakieś dane? Nie korzystając z funkcji wbudowanych Excela i
jeśli by się dało nie zaznaczając całej kolumny.

Ola
Piotr Lipski
2005-10-10 10:38:08 UTC
Permalink
Post by Ola
W jaki sposób można zliczyć ilość komórek w jednej kolumnie, w których
znajdują się jakieś dane? Nie korzystając z funkcji wbudowanych Excela i
jeśli by się dało nie zaznaczając całej kolumny.
Co rozumiesz przez "funkcje wbudowane Excela"? Czy zaliczasz do nich
również edytor i interpreter VBA?
--
PL
Ola
2005-10-10 11:33:37 UTC
Permalink
Post by Piotr Lipski
Co rozumiesz przez "funkcje wbudowane Excela"? Czy zaliczasz do nich
również edytor i interpreter VBA?
np. ile.niepustych() w wersji VBA
Stanislaw
2005-10-10 10:52:14 UTC
Permalink
Dla kolumny A będzie:

MsgBox Application.WorksheetFunction.CountA(Range("A:A"))

--
Stanislaw
Stanislaw
2005-10-10 11:07:29 UTC
Permalink
Na dobrą sprawę instrukcja

Application.WorksheetFunction.CountA(Range("A:A"))

wykorzystuje funkcję arkuszową, więc może tak:

Dim kolumna As Range
Dim komórka As Range
Dim licznik As Long

Set kolumna = Range("A:A")

licznik = 0

For Each komórka In kolumna
If komórka.Value <> "" Then licznik = licznik + 1
Next komórka

MsgBox licznik

--
Stanislaw
Stanislaw
2005-10-10 11:42:54 UTC
Permalink
Poszukując lepszych rozwiązań,
poprzednie działało wolno, proponuję:

Dim i As Long
Dim j As Long

On Error Resume Next

With Columns("A:A")
i = .SpecialCells(xlCellTypeConstants, 23).Count
j = .SpecialCells(xlCellTypeFormulas, 23).Count
End With

MsgBox i + j
--
Stanislaw
pxd74
2005-10-10 17:07:40 UTC
Permalink
Post by Ola
Post by Piotr Lipski
Co rozumiesz przez "funkcje wbudowane Excela"? Czy zaliczasz do nich
również edytor i interpreter VBA?
np. ile.niepustych() w wersji VBA
Czyli WorksheetFunction.CountA ?

A dlaczego nie chcesz z tego korzystać? - to będzie najbardziej efektywny
sposób.
Inny sposób to chyba tylko poprzez pętlę - IMHO strata czasu na pisanie.
--
Pozdrowienia
Piotr Dynia
Loading...