Количество значений - VB
Формулировка задачи:
Доброго времени суток!
Подскажите, как программно узнать количество непустых ячеек в определенном диапазоне (Excel VBA) ? Через "for i to 32000" долго... есть еще способы?
Подскажите, как программно узнать количество непустых ячеек в определенном диапазоне (Excel VBA) ? Через "for i to 32000" долго... есть еще способы?
Решение задачи: «Количество значений»
textual
Листинг программы
<font color="blue">Option</font> <font color="blue">Explicit</font> <font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> timeGetTime Lib <font color="teal">"winmm.dll"</font> () <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Function</font> NotEmptyCells(b <font color="blue">As</font> Range) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>, j <font color="blue">As</font> <font color="blue">Long</font>, k <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> A <font color="blue">As</font> Variant A = b <font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> UBound(A, <font color="darkblue"><b>1</b></font>) <font color="blue">For</font> j = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> UBound(A, <font color="darkblue"><b>2</b></font>) <font color="blue">If</font> IsEmpty(A(i, j)) = False <font color="blue">Then</font> k = k + <font color="darkblue"><b>1</b></font> <font color="blue">Next</font> j <font color="blue">Next</font> i NotEmptyCells = k <font color="blue">End</font> <font color="blue">Function</font> <font color="blue">Sub</font> Proverka() <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>, j <font color="blue">As</font> <font color="blue">Long</font>, k <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> Main <font color="blue">As</font> <font color="blue">Object</font> <font color="blue">Dim</font> Chislo(<font color="darkblue"><b>1</b></font> <font color="blue">To</font> <font color="darkblue"><b>2</b></font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="00AA00">''Задаем Main</font> <font color="blue">Set</font> Main = Workbooks(<font color="teal">""</font>).Sheets(<font color="teal">""</font>) <font color="00AA00">''</font> i = timeGetTime Chislo(<font color="darkblue"><b>1</b></font>) = NotEmptyCells(Main.Range(<font color="teal">"A1:IV30000"</font>)) j = timeGetTime Chislo(<font color="darkblue"><b>2</b></font>) = WorksheetFunction.CountA(Main.Range(<font color="teal">"A1:IV30000"</font>)) k = timeGetTime MsgBox <font color="teal">"Функция NotEmptyCells обнаружила в диапазоне "</font> _ & Chislo(<font color="darkblue"><b>1</b></font>) & <font color="teal">" записей за "</font> & j - i & <font color="teal">"мс"</font> & vbCrLf & _ <font color="teal">"Функция CountA обнаружила в диапазоне "</font> & Chislo(<font color="darkblue"><b>2</b></font>) & <font color="teal">" записей за "</font> & k - j & <font color="teal">"мс"</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д