Количество значений - VB

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток!
Подскажите, как программно узнать количество непустых ячеек в определенном диапазоне (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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы