Количество непустые ячейки vba excel

Подсчет количества ячеек в диапазоне в зависимости от их содержимого методами Count, CountA и CountBlank объекта WorksheetFunction из кода VBA Excel.

Метод WorksheetFunction.Count

Определение

Определение метода Count объекта WorksheetFunction в VBA Excel:

Метод WorksheetFunction.Count подсчитывает в заданном диапазоне (массиве) количество ячеек (элементов массива), содержащих числа, и возвращает значение типа Double.

Синтаксис

Синтаксис метода Count объекта WorksheetFunction:

WorksheetFunction.Count(Arg1, Arg2, ..., Arg30)

Параметры

Параметры метода Count объекта WorksheetFunction:

Параметр Описание
Arg1-Arg30 От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них.

Примечания

  • Метод WorksheetFunction.Count позволяет получить количество числовых значений в диапазоне ячеек или в массиве.
  • При подсчете учитываются аргументы, которые являются числами, датами или текстовым представлением чисел.
  • Логические значения учитываются при подсчете только в том случае, если они введены непосредственно в список аргументов.

Метод WorksheetFunction.CountA

Определение

Определение метода CountA объекта WorksheetFunction в VBA Excel:

WorksheetFunction.CountA — это метод, который подсчитывает в заданном диапазоне количество непустых ячеек, и возвращает значение типа Double.

Синтаксис

Синтаксис метода CountA объекта WorksheetFunction:

WorksheetFunction.CountA(Arg1, Arg2, ..., Arg30)

Параметры

Параметры метода CountA объекта WorksheetFunction:

Параметр Описание
Arg1-Arg30 От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них.

Примечания

  • Метод WorksheetFunction.CountA позволяет получить количество непустых ячеек в заданном диапазоне.
  • Непустыми являются ячейки, которые содержат любые данные, включая значения ошибок и пустые строки ("").
  • Тесты показывают, что метод WorksheetFunction.CountA в массиве, созданном путем присвоения ему значений диапазона, содержащего пустые ячейки, все равно считает все элементы массива, как содержащие значения.

Метод WorksheetFunction.CountBlank

Определение

Определение метода CountBlank объекта WorksheetFunction в VBA Excel:

WorksheetFunction.CountBlank — это метод, который подсчитывает в заданном диапазоне количество пустых ячеек, и возвращает значение типа Double.

Синтаксис

Синтаксис метода CountBlank объекта WorksheetFunction:

WorksheetFunction.CountBlank(Arg1)

Параметры

Параметры метода CountBlank объекта WorksheetFunction:

Параметр Описание
Arg1 Диапазон, в котором необходимо подсчитать количество пустых ячеек.

Примечания

  • Метод WorksheetFunction.CountBlank позволяет получить количество пустых ячеек в заданном диапазоне.
  • Пустыми являются ячейки, которые не содержат никаких данных.
  • Также подсчитываются, как пустые, ячейки с формулами, которые возвращают пустые строки ("").
  • Ячейки с нулевыми значениями в подсчете не участвуют.

Примеры

Таблица для строк кода VBA Excel со ссылками на диапазон "A1:C5", а также с массивом его значений в качестве аргументов:

Примеры с WorksheetFunction.Count

Sub Primer1()

Dim n As Double, a() As Variant

    n = WorksheetFunction.Count(Range(«A1:C5»))

MsgBox n  ‘Результат: 8

    a = Range(«A1:C5»)

    n = WorksheetFunction.Count(a)

MsgBox n  ‘Результат: 8

    n = WorksheetFunction.Count(«раз», «два», «три», 1, 2, 3)

MsgBox n  ‘Результат: 3

    n = WorksheetFunction.Count(«раз», «два», «три», «1», «2», «3», 1, 2, 3)

MsgBox n  ‘Результат: 6

    n = WorksheetFunction.Count(Empty, Empty, 0, 0, «», «»)

MsgBox n  ‘Результат: 4

    n = WorksheetFunction.Count(True, False, «True», «False»)

MsgBox n  ‘Результат: 2

End Sub

Метод WorksheetFunction.Count можно использовать для подсчета количества числовых значений в массиве, если он создан путем присвоения ему значений диапазона. Тогда логические значения ИСТИНА и ЛОЖЬ, если они встречаются в диапазоне, в подсчете количества числовых значений не участвуют.

Примеры с WorksheetFunction.CountA

Sub Primer2()

Dim n As Double, a() As Variant

    n = WorksheetFunction.CountA(Range(«A1:C5»))

MsgBox n  ‘Результат: 13

    a = Range(«A1:C5»)

    n = WorksheetFunction.CountA(a)

MsgBox n  ‘Результат: 15

    n = WorksheetFunction.CountA(«раз», «два», «три», 1, 2, 3)

MsgBox n  ‘Результат: 6

    n = WorksheetFunction.CountA(Empty, Empty, 0, 0, «», «»)

MsgBox n ‘Результат: 6

End Sub

Примеры с WorksheetFunction.CountBlank

Sub Primer3()

Dim n As Double, a As Range

    n = WorksheetFunction.CountBlank(Range(«A1:C5»))

MsgBox n  ‘Результат: 2

    Set a = Range(«A1:C5»)

    n = WorksheetFunction.CountBlank(a)

MsgBox n  ‘Результат: 2

End Sub

Следующая статья по этой теме: VBA Excel. Методы CountIf и CountIfs.


In VBA, using Excel 2016, I am trying to count the number of non-blank cells for a given range but using only the cell integer reference. I’ve tried the following:

WB.Sheets(1).Range(Cells(2, X), _
Cells(2, Y)).Cells.SpecialCells(xlCellTypeConstants).count

Where X and Y are cell references for the columns. Please assist.

Community's user avatar

asked Mar 3, 2016 at 11:24

nrcjea001's user avatar

You can do this using the excel formula CountA as you’re probably aware.

You can also use this in VBA using:

with WB.sheets(1)
    WorksheetFunction.CountA(Range(.Cells(2, X), .Cells(2, Y)))
end with

Vasily's user avatar

Vasily

5,7073 gold badges20 silver badges34 bronze badges

answered Mar 3, 2016 at 11:33

Tom's user avatar

TomTom

9,6873 gold badges31 silver badges48 bronze badges

1

Try this:

Range(WB.Sheets(1).Cells(2, X), _
WB.Sheets(1).Cells(2, Y)).Cells.SpecialCells(xlCellTypeConstants).count

You should add the workbook and worksheet before the cell and not before the range

Kazimierz Jawor's user avatar

answered Mar 3, 2016 at 11:52

juanora's user avatar

juanorajuanora

51210 silver badges21 bronze badges

0

try in this way:

Dim nonBlanck as long
    nonBlanck = WorksheetFunction.CountA(WB.Sheets(1). _
              Range(Cells(2, X), Cells(2, Y)). _   
                         SpecialCells(xlCellTypeConstants))

However, if WB.SHeets(1) is not active then you could have some problems. Therefore try with this improved solution:

Dim nonBlanck as long
    With  WB.Sheets(1)
        nonBlanck = WorksheetFunction.CountA( _
              .Range(.Cells(2, X), .Cells(2, Y)). _   
                         SpecialCells(xlCellTypeConstants))
    End With

answered Mar 3, 2016 at 11:30

Kazimierz Jawor's user avatar

Kazimierz JaworKazimierz Jawor

18.8k7 gold badges35 silver badges55 bronze badges

You need a way to define the range of clipped columns and then apply SpecialCells:

Sub dural()
    Dim x As Long, y As Long, rng As Range

    x = 3
    y = 5
    Set rng = Range(Cells(2, x), Cells(Rows.Count, y))
    MsgBox rng.Cells.SpecialCells(xlCellTypeConstants).Count
End Sub

enter image description here

answered Mar 3, 2016 at 11:44

Gary's Student's user avatar

Gary’s StudentGary’s Student

95.3k9 gold badges58 silver badges98 bronze badges

0 / 0 / 0

Регистрация: 12.04.2013

Сообщений: 10

1

Подсчет непустых ячеек в столбце

15.01.2014, 09:05. Показов 40197. Ответов 11


Студворк — интернет-сервис помощи студентам

Всем доброго времени суток!
Подскажите, кто знает: необходима простая функция для подсчета непустых ячеек в указанном столбце (либо диапазоне). Т.е аналог екселевской ПРОМЕЖУТОЧНЫЕ.ИТОГИ (СЧЗ)
Для чего надо: есть некий цикл, который перебирает все значения в столбце. Хочу сделать его немного динамичнее, чтобы можно было бы отбирать значения фильтром, а для этого, соответственно, нужно, чтобы динамически изменялось значение оператора То в цикле. Может, даже, есть более простое решение, например после обработки значения, проверялось наличие следующего, и если его нет, то выход из цикла…
Заранее благодарен за конструктивный ответ.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

15.01.2014, 09:05

Ответы с готовыми решениями:

Подсчет количества непустых ячеек диапазона
Есть диапазон
rang1=range(cells(a,b), cells(c,d))’ где a,b,c,d заранее определенные переменные….

Просуммируйте по столбцам содержимое непустых ячеек
НЕ могу ни как составить условие, чтобы считалось, помогите, если не сложно.
Условие: начиная с…

Перебор и печать непустых ячеек столбца Excel
Добрый день! Прошу помочь в моей рутине. Есть документ в котором необходимо ввести артикул и…

При значении ячеек в столбце А присвоить определенное значение ячейкам в столбце B
Столкнулся с тем, что мне нужно при значении ячеек в столбце А присвоить определенное значение…

11

0 / 0 / 0

Регистрация: 12.04.2013

Сообщений: 10

15.01.2014, 11:13

 [ТС]

3

Цитата
Сообщение от Апострофф
Посмотреть сообщение

Смотрел. У меня, почему то, всё время выдаёт ошибку



0



RAVproFFI

33 / 33 / 1

Регистрация: 15.10.2013

Сообщений: 130

15.01.2014, 11:32

4

PureBasic
1
2
3
4
5
6
R=ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
dim i as range
For each i in range(cells(1,1),cells(R,1))
  if i.value<>"" then k=k+1
next i
msgbox "Не пустых ячеек " & k

Можно также через массив



1



0 / 0 / 0

Регистрация: 12.04.2013

Сообщений: 10

15.01.2014, 14:43

 [ТС]

5

Всё работает!, но… можно ли сделать так, чтобы при выборе ячеек фильтром на странице, показывало бы значение только видимых ячеек???



0



RAVproFFI

33 / 33 / 1

Регистрация: 15.10.2013

Сообщений: 130

15.01.2014, 14:48

6

в смысле видимых? может строки скрыты а не ячейки? если так то добавить условие

PureBasic
1
if (i.value<>"") and (i.rows.hidden=false) then k=k+1



1



0 / 0 / 0

Регистрация: 12.04.2013

Сообщений: 10

15.01.2014, 14:51

 [ТС]

7

Ты — гений!!!



0



33 / 33 / 1

Регистрация: 15.10.2013

Сообщений: 130

15.01.2014, 15:00

8

))) эт visual basic, не я придумал



0



HEnogapok

0 / 0 / 0

Регистрация: 12.04.2013

Сообщений: 10

15.01.2014, 15:55

 [ТС]

9

Ну, тогда обнаглею: как твоё творение присобачить вот сюда:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Function GetAddresses() As Address()
    Dim addrs(3) As Address
    Dim i As Integer
    Dim firstCell As Range
       
    Set firstCell = Application.ActiveSheet.Range("A4")
    For i = 0 To 3
        With firstCell
            addrs(i).Street = .Offset(i, 0).Value
            addrs(i).Building = .Offset(i, 1).Value
            addrs(i).Comments = .Offset(i, 2).Value
        End With
    Next i
    GetAddresses = addrs
End Function

вот у меня там цикл по от нуля до трёх, а надо, чтобы в «То» подставлялось значение, полученное из твоего кода (количество видимых строк)???

Добавлено через 27 минут
…хотя, наверное, всё равно не прокатит((( в цикле то будут обрабатываться строки с первой не пустой, а надо только видимые… Но, всё равно — спасибо)))



0



33 / 33 / 1

Регистрация: 15.10.2013

Сообщений: 130

18.01.2014, 09:18

10

HEnogapok, если to сделать кол-во видимых строк, то в твоем цикле с offset может взять значение из скрытой строки. Может лучше заполнять addrs во время цикла где проверяется пуста и скрыта ли строка?



0



toiai

3217 / 966 / 223

Регистрация: 29.05.2010

Сообщений: 2,085

18.01.2014, 10:58

11

Поскольку примера основного кода , предложу такой вариант (немного изменив Ваш):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub tt()
    Dim addrs() 'As Address
    Dim i As Integer
    Dim firstCell As Range, c As Range
       
    Set firstCell = Range("A1:A30").SpecialCells(xlCellTypeVisible)
    With firstCell
        ReDim addrs(.Count - .SpecialCells(xlCellTypeBlanks).Count - 1)
        For Each c In firstCell
            If c <> "" Then
                addrs(i) = c
                'addrs(i).Street = .Offset(i, 0).Value
                'addrs(i).Building = .Offset(i, 1).Value
                'addrs(i).Comments = .Offset(i, 2).Value
                i = i + 1
            End If
        Next
    End With
    'GetAddresses = addrs
End Sub



0



0 / 0 / 0

Регистрация: 12.04.2013

Сообщений: 10

18.01.2014, 13:59

 [ТС]

12

Всё правильно. Так и замутил. Спасибо за помощь!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

18.01.2014, 13:59

Помогаю со студенческими работами здесь

Как в коде добавить условие подсчета среднего значения непустых ячеек
В моем макросе считается среднее значение ячеек с определенным цветом, но мне нужно, чтобы…

Нужно что бы макрос случайным образом выбирал 100 непустых ячеек из столбцов
Здравствуйте,

Есть эксель файл, в нем есть лист номер 2, в нем столбцы A и B

Нужно что бы…

Сцепка ячеек построчно, выборка непустых значений из диапазона и подстановка их в одну ячейку
Есть диапазон где в строках по условиям появляются значения, например:

а1: стул
а2: стол
а3:…

Подсчет суммы в столбце до первой пустой строки и новый подсчет
Уже подзабыл как писать макросы, последний раз это делал несколько лет назад, поэтому прошу помощи…

В одном столбце таблицы БД заменить все пустые ячейки на содержимое ячеек в другом столбце из той же строки
Добрый день.

Есть таблица .dbf и надо в одном столбце заменить все пустые ячейки на содержимое…

Подсчёт непустых ячеек во всём столбце и особый диапазон
Добрый вечер, уважаемые, два важных вопроса к вам по Экселю, ответа не нашёл.

1. Есть функция…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

  • Функция Excel VBA COUNTA

Функция Excel VBA COUNTA

Возможно, вы часто использовали функции COUNT и COUNTA в Microsoft Excel. При этом COUNT захватывает все числовые значения в ячейке, COUNTA захватывает все непустые ячейки (включая строки). Можно ли каким-либо образом использовать функцию COUNTA через VBA? Абсолютно да! Вы можете использовать функцию COUNTA через VBA в качестве функции рабочего листа (так как она является частью семейства WorksheetFunction внутри VBA) для подсчета непустых ячеек через заданный диапазон рабочего листа. Преимущество функции COUNTA над COUNT заключается в том, что она может считать все (числа, строки, специальные символы, значения ошибок и т. Д.), Кроме пустых ячеек в данном диапазоне, тогда как COUNT может считать только количество ячеек, состоящих из числовых значений.,

Синтаксис VBA COUNTA:

Синтаксис функции VBA COUNTA показан ниже:

Где,

Arg1 — Определяет аргумент для этой функции, который является обязательным и может принимать любое непустое значение, такое как число, строка, значения ошибки (например, # N / A, # DIV / 0!), Специальные символы и т. Д. Остальные аргументы необязательный.

Эта функция может принимать до 30 аргументов за один вызов. Аргумент может состоять из диапазона ячеек или одного значения, которое вводится вручную.

Как использовать функцию COUNTA в Excel VBA?

Ниже приведены различные примеры использования функции COUNTA в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA COUNTA Excel здесь — Шаблон VBA COUNTA Excel

Пример № 1 — VBA COUNTA с ручными аргументами в качестве входных данных

Мы увидим, как работает функция COUNTA, когда мы предоставим ей ручные аргументы в VBA. Выполните следующие шаги:

Шаг 1. Вставьте новый модуль в редактор Visual Basic (VBE). Нажмите на вкладку Вставка > выберите модуль.

Шаг 2: Определите новую подпроцедуру во вновь вставленном модуле, которая может содержать ваш макрос.

Код:

 Sub Example_1 () End Sub 

Шаг 3: Решите, где мы хотим сохранить выходные данные для функции COUNTA. Я хочу сохранить его в ячейке A2 листа с именем « Пример 1 ». Для этого нам нужно использовать метод Sheets.Range в VBA. Смотрите следующий скриншот для справки:

Код:

 Sub Example_1 () Sheets ("Пример 1"). Range ("A2") End Sub 

Этот фрагмент кода выбирает ячейку A2 в качестве диапазона из листа с именем Пример 1.

Шаг 4: Используйте оператор присваивания, чтобы мы могли присвоить значение ячейке, к которой будет осуществляться доступ, с помощью кода выше. Добавьте объект с именем WorksheetFunction, чтобы мы могли получить доступ к функции COUNTA под ним.

Код:

 Sub Example_1 () Sheets ("Пример 1"). Range ("A2") = WorksheetFunction End Sub 

Шаг 5: Поставьте точку (.) После указанного объекта, и вы увидите список функций, доступных для использования под ним. Выберите COUNTA из списка нескольких доступных функций, который позволяет подсчитывать непустые ячейки или значения.

Шаг 6: Укажите аргументы вручную в функции COUNTA. Аргументы: «Rajnish», «# N / A», 1, «*», True. Мы попытались привести все типы данных в качестве аргумента этой функции.

Код:

 Sub Example_1 () Sheets ("Пример 1"). Range ("A2") = WorksheetFunction.CountA ("Rajnish", "# N / A", 1, "*", True) End Sub 

Шаг 7: Запустите этот фрагмент кода, нажав F5 или кнопку Run, и просмотрите результат под ячейкой A2 листа « Пример 1 » в активной рабочей книге.

В этом коде мы хотим, чтобы система посчитала входные аргументы и сохранила счет под ячейкой A2 в примере 1.

Пример № 2 — VBA COUNTA для подсчета непустых ячеек в заданном диапазоне

Предположим, у меня есть данные по всему столбцу A, и мне нужно посчитать, что является непустыми строками во всем столбце. Поскольку весь столбец состоит из более чем 10 строк Lac, для меня является идеальным трудоемким переходом и подсчетом каждой непустой ячейки. Смотрите частичный скриншот данных ниже.

Выполните следующие шаги:

Шаг 1: Определите новую подпроцедуру, которая может содержать ваш макрос.

Код:

 Sub Example_2 () End Sub 

Шаг 2: Определите две новые переменные в этой подпроцедуре как Range, используя Dim . Одна переменная будет полезна для хранения диапазона столбца входного аргумента, а другие переменные будут полезны для хранения ячейки, в которой мы хотим получить результат в виде подсчитанного числа.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell As Sub End Sub 

Здесь rng_1 сохранит диапазон ввода для функции COUNTA. Вывод COUNTA будет сохранен в переменной op_cell .

Шаг 3: Теперь установите диапазон для обеих переменных, используя свойство VBA Set. Это должно быть сделано, потому что мы не можем напрямую присвоить значение переменной, определенной как объект диапазона.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell Как Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") End Sub 

Здесь переменная rng_1 была установлена ​​в диапазон всего столбца с именем A. op_cell установлена ​​в ячейку B1, поскольку это будет ячейка, которая содержит выходные данные COUNTA.

Шаг 4: Теперь используйте общий оператор присваивания для переменной op_cell, чтобы мы могли сохранить выходные данные в ячейке, для которой установлена ​​эта переменная. Это может рассматриваться как выходная инициализация.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell В качестве Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = End Sub 

Шаг 5: Используйте объект WorksheetFunction в правой части оператора присваивания (это будет выражение, которое будет оценено, и значение будет сохранено в ячейке с переменной op_cell), чтобы инициализировать класс, к которому мы можем обращаться, а также использовать Функция COUNTA.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell Как Range Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction End Sub 

Шаг 6: Как только вы нажмете точку (.) После объекта WorksheetFunction, вы сможете получить доступ ко всем функциям, доступным в этом классе. Перейдите к функции COUNTA и дважды щелкните по ней, чтобы выбрать.

Шаг 7: Используйте переменную rng_1 в качестве входного аргумента в COUNTA. Следовательно, эта функция в классе объектов функций рабочего листа может подсчитывать непустые ячейки, присутствующие во всем столбце A.

Код:

 Sub Example_2 () Dim rng_1 As Range Dim op_cell В качестве диапазона Set rng_1 = Range ("A: A") Set op_cell = Range ("B1") op_cell = WorksheetFunction.CountA (rng_1) End Sub 

Шаг 8: Запустите этот код, нажав F5 или кнопку Run, и вы увидите результат, как показано ниже, в ячейке B1 активного листа из рабочей книги.

В ячейке B1 мы можем видеть число как 17. Это означает, что у нас есть 17 непустых ячеек в столбце A рабочего листа. Вы можете вообще не видеть 17 на этом скриншоте, так как он является частичным. Вы могли бы лучше видеть рабочий лист и перемещаться по столбцу А.

То, что нужно запомнить

  • Вы можете использовать функцию VBA COUNTA, когда вам нужно посчитать количество непустых ячеек, присутствующих в данном диапазоне.
  • COUNTA рассматривает все значения, такие как числа, строки, значения ошибок, логические значения, пустой текст («»). Однако он не учитывает пустую ячейку.
  • Пустые ячейки не будут учитываться с помощью функции COUNTA и будут игнорироваться.
  • Вы можете использовать аргументы вручную в функции VBA COUNTA, и она все еще работает.

Рекомендуемые статьи

Это руководство к функции VBA COUNTA. Здесь мы обсудим, как использовать функцию COUNTA в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как создать коллекционный объект в VBA?
  2. Как считать символы в Excel?
  3. FileCopy в VBA (Примеры с шаблоном Excel)
  4. Подсчет ячеек с текстом в Excel | Шаблон Excel

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Подскажите, как, открыв макросом стороннюю книгу, можно на определенном ее листе посчитать кол-во заполненных ячеек в столбце A.

 

hk1209

Пользователь

Сообщений: 271
Регистрация: 01.01.1970

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Set wb2 = Workbooks.Open(«C:UsersU_M06TTDesktopExcelКачествоМарт 2014.xls», 0, 1)   ‘открыл книгу
Далее необходимо посчитать кол-во заполненных ячеек в файле Март 2014.xls   sheets(«данные»).range(«A:A»)

Скажите что еще написать, я в этом не оч силен.

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

#4

15.05.2014 20:31:10

Нашел решение, всем спасибо!

Код
ThisWorkbook.Worksheets("данные".Activate 
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate 
k = ActiveCell.Row    'номер последней заполненной строки
 

Scripter

Пользователь

Сообщений: 255
Регистрация: 06.02.2014

#5

16.05.2014 01:48:48

так кол-во заполненных

Код
Msgbox "Кол-во заполненных ячеек в столбце А: " & Worksheetfunction.CountA(Columns(1)) 

так номер последней строки

Код
Msgbox "Номер последней заполненной строки: " & Cells(Rows.Count,1).end(xlup).row 

Изменено: Scripter16.05.2014 08:58:46

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

А если необходимо открыв книгу, посчитать Кол-во заполненных ячеек, предварительно выбрав лист, как использовать Worksheetfunction.CountA(Columns(1))

 

Scripter

Пользователь

Сообщений: 255
Регистрация: 06.02.2014

#7

16.05.2014 17:44:27

Если нужно чтоб при открытии книги срабатывал код, то нужно поместить код в «Эта книга»

Если вам нужно посчитать ВСЕ заполненные (не найти последнюю строку) ячейки на листе:

Скрытый текст

В определенном столбце

Скрытый текст

или

Скрытый текст

Найти последнюю строку на листе, если последнее значение которое увеличивает диапазон может быть в любом столбце

Скрытый текст

Найти последнюю строку на листе по определенному полю

Скрытый текст

Изменено: Scripter16.05.2014 17:48:46

Когда есть несколько ячеек без данных, заполненных в диапазоне в Excel, и вы просто хотите знать, сколько непустых ячеек или пустых ячеек находится в этом диапазоне, как вы можете это сделать? Теперь я могу представить вам два способа подсчета пустых или непустых ячеек в диапазоне в Excel.

Подсчет пустых или непустых ячеек с помощью формулы
Подсчитайте пустые или непустые ячейки с помощью VB
Легко подсчитывайте непустые ячейки с помощью Kutools for Excel


Подсчет пустых или непустых ячеек с помощью формулы

В Excel есть формулы, которые помогут быстро подсчитать только пустые или непустые ячейки в диапазоне.

Например, вам нужно подсчитать пустые ячейки только в этом диапазоне, как показано ниже, и выбрать пустую ячейку, чтобы ввести эту формулу. = СЧЁТЕСЛИ (A1: G11; «») (диапазон A1: G11 указывает диапазон, из которого вы хотите подсчитать пустые ячейки, вы можете изменить его по своему усмотрению) и нажмите кнопку Enter на клавиатуре, вы посчитаете пустые ячейки. Смотрите скриншот:

Совет: вы можете использовать эту формулу: = СЧИТАТЬПУСТОТЫ (A1: G11) для подсчета только пустых ячеек. Если вы хотите подсчитывать только непустые ячейки, вы можете использовать эту формулу = СЧЁТ (A1: G11) (диапазон A1: G11 указывает диапазон, из которого вы хотите подсчитать непустые ячейки, вы можете изменить его по своему усмотрению), или вы также можете использовать эту формулу = СЧЁТЕСЛИ (A1: G11; «<>»).



Подсчет пустых или непустых ячеек с помощью VBA

Выполните следующие шаги, чтобы использовать код VBA для преобразования подсчета только пустых или непустых ячеек.

1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, и скопируйте VBA в модуль.

VBA: подсчитывать только пустые ячейки

Sub CountBlanks()
'Updateby20140310
Dim rng As Range
Dim WorkRng As Range
Dim total As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each rng In WorkRng
    If IsEmpty(rng.Value) Then
        total = total + 1
    End If
Next
MsgBox "There are " & total & " blank cells in this range."
End Sub

3. Нажмите Run для запуска VBA и KutoolsforExcel появится диалоговое окно для выбора рабочего диапазона, см. снимок экрана:

4. Затем нажмите OK в диалоговом окне, и отображается другое диалоговое окно, чтобы сообщить вам, сколько пустых ячеек находится в этом выбранном диапазоне.

Совет: если вы хотите подсчитать непустые ячейки, вы можете сделать, как указано выше, и использовать следующий VBA:

VBA: подсчитывать только непустые ячейки

Sub CountNonBlanks()
'Updateby20140310
Dim rng As Range
Dim WorkRng As Range
Dim total As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each rng In WorkRng
    If Not IsEmpty(rng.Value) Then
        total = total + 1
    End If
Next
MsgBox "There are " & total & " not blank cells in this range."
End Sub

Легко подсчитывайте непустые ячейки с помощью Kutools for Excel

Наблюдения и советы этой статьи мы подготовили на основании опыта команды Выбрать непустые ячейки полезности Kutools for Excel помогает выбрать все непустые ячейки в выбранном диапазоне одним щелчком мыши, а затем легко подсчитать количество выбранных ячеек.

1. Выберите диапазон с непустыми ячейками, которые вы хотите подсчитать, затем щелкните Кутулс > Выберите > Выберите непустые ячейки. Смотрите скриншот:

2. Затем появится диалоговое окно, чтобы сообщить вам, сколько непустых ячеек в выбранном диапазоне, нажмите кнопку ОК, и эти непустые ячейки будут выбраны немедленно. Смотрите скриншот:

документ непустой1

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Легко подсчитывайте непустые ячейки с помощью Kutools for Excel


Относительные статьи:

  • Подсчет повторяющихся значений в столбце в Excel
  • Подсчет объединенных ячеек в Excel

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

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

Есть диапазон
rang1=range(cells(a,b), cells(c,d))’ где a,b,c,d заранее определенные переменные.
Как получить количество непустых ячеек rang1. Может существует какая-либо встроенная функция?

Код к задаче: «Подсчет количества непустых ячеек диапазона»

textual

MsgBox WorksheetFunction.CountA(rang1)

Полезно ли:

15   голосов , оценка 4.267 из 5

Понравилась статья? Поделить с друзьями:
  • Количество ненулевых ячеек в excel формула
  • Количество незаполненных ячеек в excel
  • Количество недель от даты до даты excel
  • Количество недель в месяце excel
  • Количество не пустых ячеек в таблице в excel