Количество строк в ячейке excel vba

I am developing a dashboard in excel. And I am looking for calculating row count. (How many records are present) ..

Since there are some blank cells I thought to go from bottom to up. I use the following

   Range("A1048576").Select
Selection.End(xlUp).Select

After this execution the active cell is at A113 which means the row count is 113.

My question is how to get this number 113 from the active cell?

Community's user avatar

asked Feb 4, 2014 at 13:37

Alwyn Miranda's user avatar

You can use this:

Dim lastrow as Long
lastrow = Cells(Rows.Count,"A").End(xlUp).Row

lastrow will contain number of last empty row in column A, in your case 113

answered Feb 4, 2014 at 13:38

Dmitry Pavliv's user avatar

Dmitry PavlivDmitry Pavliv

35.2k13 gold badges79 silver badges80 bronze badges

1

Here is what I usually use for that:

lastrow = WorksheetFunction.CountA(Columns("A:A"))

This will return the number of non-empty cells in Column «A» which is what I think you’re after. Hope this helps.

answered Feb 4, 2014 at 13:49

Jim Simson's user avatar

Jim SimsonJim Simson

2,7663 gold badges21 silver badges30 bronze badges

2

The best way to get the count of rows/records (in most cases) is to use .UsedRange.Rows.Count. You can assign the return value to a variable like this:

lastRow = Sheets(1).UsedRange.Rows.Count

If you use a function that includes a column (such as column A) as shown in other examples, that will only get you the count of rows in that column, which may or may not be what you’re going for. One caveat: if you have formatted rows below your last row with a value then it will return that row number.

answered Mar 3, 2021 at 0:28

SendETHToThisAddress's user avatar

If there is a slight chance that the last row of the worksheet is not empty, you should add an IsEmpty() check to @simoco ‘s solution. Therefore; following is a function that returns the last used row and check if the last row of the worksheet is empty:

Function lastRow(WS As Worksheet, iColumn As String) As Long

    If Not IsEmpty(WS.Range(iColumn & WS.Rows.Count)) Then
        lastRow = WS.Rows.Count
    Else
        lastRow = WS.Range(iColumn & WS.Rows.Count).End(xlUp).Row
    End If

End Function

answered Feb 4, 2014 at 14:22

simpLE MAn's user avatar

simpLE MAnsimpLE MAn

1,56213 silver badges22 bronze badges

 

asesja

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

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

Здравствуйте.
Подскажите, пож-та, как программно, при помощи VBA, посчитать общее количество строк в ячейке «A1», если текста много и он превышает максимальную высоту строки этой ячейки.
Ширина столбца, размер строки, шрифт меняться не будут, т.е. использовать существующие параметры при проведении расчета.
Пример во вложении. Должно получиться — в общем 41 строка (включая пустые строки с переносами)

Изменено: asesja21.10.2022 23:19:17

 

Пытливый

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

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

#2

21.10.2022 22:43:41

Здравствуйте.
Почему должно получиться 41? Исходя из примера — там 22 строки.
Формулой можно посчитать:

Код
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(10);""))

Кому решение нужно — тот пример и рисует.

 

Ігор Гончаренко

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

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

#3

21.10.2022 22:59:39

Цитата
написал:
пож-та, как посчитать количество строк текста в ячейке «A1»,

никак

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

asesja

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

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

#4

21.10.2022 23:10:31

Цитата
написал:
Почему должно получиться 41? Исходя из примера — там 22 строки.

Поправил пример. Имеются пустые строки с переносами.
Зашел в ячейку в файле примера и посчитал строки в ручную — 41 с последней пустой. Скрин во вложении.

 

БМВ

Модератор

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

Excel 2013, 2016

#5

21.10.2022 23:54:47

вставляем текст бокс, выбираем ширину нужную и авто размер, шрифт. вставляем текст.
смотрим сколько строк

Код
Лист2.shapes(1).TextFrame2.TextRange.Lines.Count

естественно пустые переводы тоже считаются как строки.

Прикрепленные файлы

  • example2739.xlsx (13.11 КБ)

Изменено: БМВ21.10.2022 23:57:28

По вопросам из тем форума, личку не читаю.

 

asesja

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

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

БМВ, спасибо. Завтра обязательно попробую. Должно получиться. Ключик уже где-то рядом))

 

asesja

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

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

#7

22.10.2022 21:47:31

БМВ, проверил. Всё получилось как вы написали. Буду использовать код в своей программе для расчета высоты строчек объединенных ячеек с текстовыми данными.
Отличная идея! Ещё раз спасибо за помощь.

Home / VBA / Count Rows using VBA in Excel

To count rows using VBA, you need to define the range from which you want to count the rows and then use the count and rows property to get the count of the row from that range. You can also use a loop to count rows where you have data only.

Use VBA to Count Rows

  1. First, you need to define the range for which you want to count the rows.
  2. After that, use a dot (.) to open the list of properties and methods.
  3. Next, type or select the “Rows” property.
  4. In the end, use the “Count” property.
vba-to-count-rows

Now when you run this code, it will return the count of the rows, and to get the count you can use a message box or directly enter that value into a cell as well.

Sub vba_count_rows()
Range("A1:A10").Rows.Count
End Sub

Count Rows for the Used Range

Sub vba_count_rows2()
   MsgBox Worksheets("Sheet1").UsedRange.Rows.Count
End Sub

Count Rows with Data using VBA

You can also count rows where you have data by ignoring the blank rows.

count-rows-with-data-using-vba

The following code will take the used range as the range to loop up at and loop through each row one by one and check if there’s a non-empty cell there, and if it is there it will consider it as a row with data, and in the end, show a message box with the total count of rows.

Sub vba_count_rows_with_data()

Dim counter As Long
Dim iRange As Range

With ActiveSheet.UsedRange

    'loop through each row from the used range
    For Each iRange In .Rows

        'check if the row contains a cell with a value
        If Application.CountA(iRange) > 0 Then

            'counts the number of rows non-empty Cells
            counter = counter + 1

        End If

    Next

End With

MsgBox "Number of used rows is " & counter
End Sub

More Tutorials

    • Excel VBA Font (Color, Size, Type, and Bold)
    • Excel VBA Hide and Unhide a Column or a Row
    • Excel VBA Range – Working with Range and Cells in VBA
    • Apply Borders on a Cell using VBA in Excel
    • Find Last Row, Column, and Cell using VBA in Excel
    • Insert a Row using VBA in Excel
    • Merge Cells in Excel using a VBA Code
    • Select a Range/Cell using VBA in Excel
    • SELECT ALL the Cells in a Worksheet using a VBA Code
    • ActiveCell in VBA in Excel
    • Special Cells Method in VBA in Excel
    • UsedRange Property in VBA in Excel
    • VBA AutoFit (Rows, Column, or the Entire Worksheet)
    • VBA ClearContents (from a Cell, Range, or Entire Worksheet)
    • VBA Copy Range to Another Sheet + Workbook
    • VBA Enter Value in a Cell (Set, Get and Change)
    • VBA Insert Column (Single and Multiple)
    • VBA Named Range | (Static + from Selection + Dynamic)
    • VBA Range Offset
    • VBA Sort Range | (Descending, Multiple Columns, Sort Orientation
    • VBA Wrap Text (Cell, Range, and Entire Worksheet)
    • VBA Check IF a Cell is Empty + Multiple Cells

    ⇠ Back to What is VBA in Excel

    Helpful Links – Developer Tab – Visual Basic Editor – Run a Macro – Personal Macro Workbook – Excel Macro Recorder – VBA Interview Questions – VBA Codes

    1. How to count rows using VBA?

      To count rows using VBA, you need to define the range from which you want to count the rows and then use the count and rows property to get the count of the row from that range. You can also use a loop to count rows where you have data only. First, you need to define the range for which you want to count the rows.

    2. How to count rows with criteria in Excel?

      ⧪ Then press ALT+F8, select Count_Selected_Rows, and click on Run. You will get a message box showing you the total number of rows in your selected range ( 10 in this case.) 3. Insert VBA Code to Count Rows with Criteria in Excel We can also use a VBA code to count the total number of rows that maintain a specific criterion.

    3. How do I get the number of rows in Excel?

      Another useful way to get the number of rows is cnt = Worksheets («Sheet2»).Range («A1»).CurrentRegion.Rows.Count. This will get the used range up to the first blank row. I have just provided an example, please don’t stick with the values. you can use any excel range and get the row count. Sheet2 is a sheet, not a range.

    4. How to count rows of a range in JavaScript?

      We are counting several rows in the RANGE object’s ROWS property, so choose the “COUNT” property now. Now in the message box, show the value of the variable. Now, run the code and see the count of rows of the supplied range of cells. There are 8 rows supplied for the range, so the row count is 8 in the message box.

    Grilled Giardiniera-Stuffed Steak Sandwich image

    Grilled Giardiniera-Stuffed Steak Sandwich

    This rolled flank steak is inspired by the Italian beef sandwich, a Chicago delicacy typically consisting of chopped thin slices of roast beef stuffed…

    Provided by Food Network Kitchen

    Mapo Potato image

    Mapo Potato

    Let’s be clear: Nothing surpasses the hearty deliciousness of a traditional mapo tofu. But for those days when you find yourself without soft tofu in the…

    Provided by Hetty McKinnon

    Chili image

    Chili

    This is a spicy, smoky and hearty pot of chili. It’s the kind of chili you need after a long day skiing — or hibernating. To create a rich and thick sauce,…

    Provided by Ali Slagle

    Banket image

    Banket

    This recipe is from my mother. It is the one she taught me with a slight tweak. In my home on the holidays one way to show someone or a family they were…

    Provided by Jena Lewis

    Moroccan Nachos image

    Moroccan Nachos

    This Moroccan twist on the much-loved appetizer features kefta, a ground beef (or lamb) mixture seasoned with parsley, cilantro, mint, paprika and cumin,…

    Provided by Nargisse Benkabbou

    Peanut Butter Brownie Cups image

    Peanut Butter Brownie Cups

    I’m not a chocolate fan (atleast not the kind made in the U.S.), but I LOVE peanut butter and chocolate and this hit the spot. I found the recipe in 2007…

    Provided by AmyZoe

    Banana Cream Pudding image

    Banana Cream Pudding

    This fabulous version of the favorite Southern dessert boosts the banana flavor by infusing it into the homemade vanilla pudding, in addition to the traditional…

    Provided by Martha Stewart

    Lemon Russian Tea Cakes image

    Lemon Russian Tea Cakes

    I love lemon desserts,these are a simple cookie I can make quickly. The recipe is based on the pecan Russian tea cakes.I don’t like lemon extract,instead…

    Provided by Stephanie L. @nurseladycooks

    Easy Churros with Mexican Chocolate Sauce image

    Easy Churros with Mexican Chocolate Sauce

    Forgo the traditional frying — and mixing up the batter! — for this Latin American treat. Instead, bake store-bought puff pastry for churros that are…

    Provided by Martha Stewart

    Easy Lasagna image

    Easy Lasagna

    Everyone loves lasagna. It’s perfect for feeding a big crowd and a hit at potlucks. But most people reserve it for a weekend cooking project since it can…

    Provided by Food Network Kitchen

    Grilled Vegetables Korean-Style image

    Grilled Vegetables Korean-Style

    Who doesn’t love grilled vegetables — the sauce just takes them over the top.

    Provided by Daily Inspiration S @DailyInspiration

    Outrageous Chocolate Cookies image

    Outrageous Chocolate Cookies

    From Martha Stewart. I’m putting this here for safe keeping. This is a chocolate cookie with chocolate chunks. Yum! Do not over cook this cookie since…

    Provided by C. Taylor

    CERTO® Citrus Jelly image

    CERTO® Citrus Jelly

    A blend of freshly squeezed orange and lemon juices puts the citrusy deliciousness in this CERTO Citrus Jelly.

    Provided by My Food and Family

    Previous

    Next

    COUNT ROWS USING VBA IN EXCEL — EXCEL CHAMPS

    count-rows-using-vba-in-excel-excel-champs image

    WebTo count rows using VBA, you need to define the range from which you want to count the rows and then use the count and rows property to get the count of the row from that range. You can also use a loop to count …
    From excelchamps.com

    To count rows using VBA, you need to define the range from which you want to count the rows and then use the count and rows property to get the count of the row from that range. You can also use a loop to count …»>
    See details


    EXCEL — VBA — RANGE.ROW.COUNT — STACK OVERFLOW

    excel-vba-rangerowcount-stack-overflow image

    WebSub test () Dim sh As Worksheet Set sh = ThisWorkbook.Sheets («Sheet1») Dim k As Long k = sh.Range («A1», sh.Range («A1»).End (xlDown)).Rows.Count End Sub What happens is this: We count the …
    From stackoverflow.com

    Sub test () Dim sh As Worksheet Set sh = ThisWorkbook.Sheets («Sheet1») Dim k As Long k = sh.Range («A1», sh.Range («A1»).End (xlDown)).Rows.Count End Sub What happens is this: We count the …»>
    See details


    VBA ROW COUNT — HOW TO COUNT NUMBER OF USED ROWS IN VBA?

    2023-03-20
    From wallstreetmojo.com
    Estimated Reading Time 4 mins


    HOW TO COUNT UNIQUE VALUES IN RANGE USING VBA — STATOLOGY

    WebMar 14, 2023 You can use the following basic syntax to count the number of unique values in a range using VBA: Sub CountUnique () Dim Rng As Range, List As Object, …
    From statology.org

    Mar 14, 2023 You can use the following basic syntax to count the number of unique values in a range using VBA: Sub CountUnique () Dim Rng As Range, List As Object, …»>
    See details


    在 VBA 中查找最后一行和最后一列_迹忆客

    WebMar 19, 2023 在 VBA 中查找最后一行和最后一列. 在处理电子表格中的数据时,我们需要知道数据的最后一行和最后一列。. 设置光标可以迭代的限制很有用。. VBA 没有内置函数 …
    From jiyik.com

    Mar 19, 2023VBA 中查找最后一行和最后一列. 在处理电子表格中的数据时,我们需要知道数据的最后一行和最后一列。. 设置光标可以迭代的限制很有用。. VBA 没有内置函数 …»>
    See details


    VBA : HOW TO COUNT NUMBER OF ROWS IN FILTERED COLUMN?

    WebAug 19, 2015 Here is the code used to apply auto filter: Sub filtered_row_count () Sheets («Sheet1»).Select row_count = Application.CountA (Range («B:B»)) — 1 ‘Subtract the …
    From stackoverflow.com

    Aug 19, 2015 Here is the code used to apply auto filter: Sub filtered_row_count () Sheets («Sheet1»).Select row_count = Application.CountA (Range («B:B»)) — 1 ‘Subtract the …»>
    See details


    HOW TO COUNT ROWS WITH DATA IN COLUMN USING VBA IN EXCEL (9 …

    WebFeb 16, 2023 Method-1: Using VBA Rows.Count Property to Count Rows with Data in Column in Excel Here, we will be counting the rows of the Sales column with sales …
    From exceldemy.com

    Feb 16, 2023 Method-1: Using VBA Rows.Count Property to Count Rows with Data in Column in Excel Here, we will be counting the rows of the Sales column with sales …»>
    See details


    EXCEL FILE TO COUNT TOTAL ROWS IN VBA — STACK OVERFLOW

    WebMay 9, 2012 Try the followings: To get the count of used rows: cnt = Worksheets («Sheet2»).Cells.SpecialCells (xlCellTypeLastCell).Row To get the count of all rows of …
    From stackoverflow.com

    May 9, 2012 Try the followings: To get the count of used rows: cnt = Worksheets («Sheet2»).Cells.SpecialCells (xlCellTypeLastCell).Row To get the count of all rows of …»>
    See details


    COUNT THE NUMBER OF ROWS OR COLUMNS IN EXCEL — MICROSOFT SUPPORT

    WebIf you need a quick way to count rows that contain data, select all the cells in the first column of that data (it may not be column A). Just click the column header. The status …
    From support.microsoft.com

    If you need a quick way to count rows that contain data, select all the cells in the first column of that data (it may not be column A). Just click the column header. The status …»>
    See details


    VBA COUNT — AUTOMATE EXCEL

    WebUsing COUNTA. The count will only count the VALUES in cells, it will not count the cell if the cell has text in it. To count the cells which are populated with any sort of data, we …
    From automateexcel.com

    Using COUNTA. The count will only count the VALUES in cells, it will not count the cell if the cell has text in it. To count the cells which are populated with any sort of data, we …»>
    See details


    RANGE.ROWS PROPERTY (EXCEL) | MICROSOFT LEARN

    WebMar 29, 2022 For example, both Selection.Rows(1) and Selection.Rows.Item(1) return the first row of the selection. When applied to a Range object that is a multiple selection, this …
    From learn.microsoft.com

    Mar 29, 2022 For example, both Selection.Rows(1) and Selection.Rows.Item(1) return the first row of the selection. When applied to a Range object that is a multiple selection, this …»>
    See details


    VBA: HOW TO COUNT NUMBER OF ROWS IN RANGE — STATOLOGY

    WebMar 9, 2023 VBA: How to Count Number of Rows in Range You can use the following basic syntax to count the number of rows in a range in Excel using VBA: Sub …
    From statology.org

    Mar 9, 2023 VBA: How to Count Number of Rows in Range You can use the following basic syntax to count the number of rows in a range in Excel using VBA: Sub …»>
    See details


    COUNT THE ROWS IN A SELECTION — VBA CODE EXAMPLES — AUTOMATE …

    WebIn this ArticleCount Rows in a SelectionCount Columns in a SelectionVBA Coding Made Easy If you ever need to count the number of rows that were selected, use …
    From automateexcel.com

    In this ArticleCount Rows in a SelectionCount Columns in a SelectionVBA Coding Made Easy If you ever need to count the number of rows that were selected, use …»>
    See details


    [EXCEL VBA] COUNT COLUMNS & ROWS HAVING DATA (10 EDITABLE CODES)

    WebMay 18, 2022 This code will count all the columns in a given range mentioned in the code. This code counts all the blank as well as non-blank columns within the specified range. …
    From excelgraduate.com

    May 18, 2022 This code will count all the columns in a given range mentioned in the code. This code counts all the blank as well as non-blank columns within the specified range. …»>
    See details


    HOW TO GET THE ROW COUNT IN EXCEL VBA — STACK OVERFLOW

    WebJul 9, 2018 You can assign the return value to a variable like this: lastRow = Sheets (1).UsedRange.Rows.Count If you use a function that includes a column (such as column A) as shown in other examples, that will only get you the count of rows in that column, …
    From stackoverflow.com

    Jul 9, 2018 You can assign the return value to a variable like this: lastRow = Sheets (1).UsedRange.Rows.Count If you use a function that includes a column (such as column A) as shown in other examples, that will only get you the count of rows in that column, …»>
    See details


    HOW TO PROPERLY COUNT VISIBLE ROWS IN VBA EXCEL?

    WebJan 25, 2021 Option Explicit Dim ws As Worksheet Dim rCount As Long, x As Long Dim rng As Range Sub printTest () Dim content As String Set ws = …
    From stackoverflow.com

    Jan 25, 2021 Option Explicit Dim ws As Worksheet Dim rCount As Long, x As Long Dim rng As Range Sub printTest () Dim content As String Set ws = …»>
    See details


    HOW TO COUNT ROWS WITH VBA IN EXCEL (5 APPROACHES)

    WebFeb 16, 2023 Use VBA Code to Count Rows of a Specific Range ⧪ Step 1: Press ALT+F11 on your keyboard. The VBA window will open. ⧪ Step 2: Go to the Insert tab in …
    From exceldemy.com

    Feb 16, 2023 Use VBA Code to Count Rows of a Specific Range ⧪ Step 1: Press ALT+F11 on your keyboard. The VBA window will open. ⧪ Step 2: Go to the Insert tab in …»>
    See details


    EXCEL VBA TO COUNT ROWS WITH DATA (4 EXAMPLES)

    WebFeb 19, 2023 After the VBA window appears, write the following codes in it- Sub CountUsedRows () Dim x As Long x = Selection.Rows.Count MsgBox x & » rows with …
    From exceldemy.com

    Feb 19, 2023 After the VBA window appears, write the following codes in it- Sub CountUsedRows () Dim x As Long x = Selection.Rows.Count MsgBox x & » rows with …»>
    See details


    VBA USED RANGE – COUNT NUMBER OF USED ROWS OR COLUMNS

    WebThere is no need to loop to find this, the following code does it for you. In this example the code will write “FirstEmpty” in the first empty cell in column “d”. Public Sub AfterLast () …
    From automateexcel.com

    There is no need to loop to find this, the following code does it for you. In this example the code will write “FirstEmpty” in the first empty cell in column “d”. Public Sub AfterLast () …»>
    See details


    HOW TO COUNT FILTERED ROWS IN EXCEL WITH VBA (STEP-BY-STEP

    WebFeb 13, 2023 Steps to Count Filtered Rows in Excel with VBA STEP 1: Apply Filter in the Dataset STEP 2: Launch the VBA Window to Count Filtered Rows in Excel STEP 3: …
    From exceldemy.com

    Feb 13, 2023 Steps to Count Filtered Rows in Excel with VBA STEP 1: Apply Filter in the Dataset STEP 2: Launch the VBA Window to Count Filtered Rows in Excel STEP 3: …»>
    See details


    подскажите, пожалуйста, как в документе (см. приложение) похожей структуры (имею в виду наличие пустых ячеек, строк, столбцов) в макросе узнать кол-во строк и столбцов значимой области. под значимой областью имею в виду прямоугольную область, покрывающую все непустые ячейки, в данном случае это область С2:N28, т.е. 27 строк, 12 столбцов

    Имеется ли какой-то объект или свойство, которое отвечает за эту информацию?

    команды ActiveSheet.Cells.Columns.Count и ActiveSheet.Cells.Rows.Count, показывают кол-во столбцов и строк всего листа, т.е. не подходят. Сейчас я просто пробегаю все ячейки и, если встречается подряд пять пустых строк (обычно больше не бывает) делаю останов.
    есть вариант перед запуском макроса, нужную область выделить вручную, но это тоже не всегда удобно


    я новичок в VBA поэтому врядли подскажу…
    а вот спросить бы очень хотелось:
    что значит «пробегаю пять пустых ячеек? «

    -можете с макросом выложить пример?

    Цитата: polioli от 09.11.2009, 23:56
    подскажите, пожалуйста, как в документе (см. приложение) похожей структуры (имею в виду наличие пустых ячеек, строк, столбцов) в макросе узнать кол-во строк и столбцов значимой области.

    я знаю как не в макросе узнать  — функцией по английски называющейся counta (она из диапазона как раз выдает колличество значимых ячеек)

    возможно при помощи макрорекордера можно вытянуть как ее использовать в макросе.

    p.s если выложите пример макроса перебирающего ячейки, буду очень благодарен.


    Если не учитывать первые пустые строки и столбцы, то можно так:

    Sub rrrr()
        r1_ = Range(«A1»).SpecialCells(xlLastCell).Row
        c1_ = Range(«A1»).SpecialCells(xlLastCell).Column
    End Sub

    если учитывать:

    Sub ttt()
        r1_ = Range(«A1»).SpecialCells(xlLastCell).Row
        r2_ = Range(«A1»).SpecialCells(xlConstants).Row
        r_ = r1_ — r2_
        c1_ = Range(«A1»).SpecialCells(xlLastCell).Column
        c2_ = Range(«A1»).SpecialCells(xlConstants).Column
        c_ = c1_ — c2_
    End Sub

    Скажи мне, кудесник, любимец ба’гов…

    Яндекс-деньги: 41001632713405
    Webmoney: R289877159277; Z102172301748; E177867141995


    _Boroda_, большое спасибо, то, что надо
    но в одном случае этого не достаточно.
    если в документе строки удаляли с помощью Del, т.е удаление информации, но не самой строки, то после последней «значимой» строки может идти ряд пустых строк.

    можно ли как-то вычислить их кол-во (не перебирая ячейки по одной), т.е. посчитать размер диапазона не учитывая последние пустые строки?
    еще раз, спасибо!

    Нelg, «пробегаю пять пустых ячеек? » имелось в виду в цикле методом перебора проверяю каждую ячейку, и если, к примеру, встречается пять пустых ячеек подряд, то считать, что информации в файле дальше нет.
    выглядит это примерно так
    ii = 1
    Do
        If Len(.Cells(vRow, 1)) = 0 Then
           ii = ii + 1
        End If
       …
          vRow = vRow + 1
      Loop Until ii > 5
    Не красиво, не удобно, но работало.
    Теперь буду использовать способ, предложенный Бородой :)


    Тогда так:

    Sub yyyyy()
       ActiveWorkbook.Save
       r1_ = Cells.SpecialCells(xlLastCell).Row
        c1_ = Cells.SpecialCells(xlLastCell).Column

    End Sub

    Скажи мне, кудесник, любимец ба’гов…

    Яндекс-деньги: 41001632713405
    Webmoney: R289877159277; Z102172301748; E177867141995


    Цитата: Нelg от 10.11.2009, 00:15
    … пример макроса перебирающего ячейки … [/u]

    ‘Варианта два:
    ‘1-й: Количество строк, столбцов заранее известно;
    ‘2-й: Количество строк, столбцов заранее не известно;

    ‘Ответ:
    ‘1-й: (нужно «перебрать ячейки в блоке «b2:f7″, двигаясь по ячейкам строки, а затем на строку ниже»)
    Sub pereborIzwestnogoBloka()
        Dim i As Long
        Dim j As Integer

        ‘перебрать ячейки в блоке «b2:f7», двигаясь по ячейкам строки, а затем на строку ниже
        i = 0
        For i = 2 To 7 ‘по строкам
            j = 0
            For j = 2 To 6 ‘по ячейкам строки
                ‘в ячейке с координатами очередного шага перебора, выполняем действия = Start
                Cells(i, j) = i + j ‘ — пишем в нее сумму координат
                Cells(i, j).Select ‘ — делаем ее активной
                ‘в ячейке с координатами очередного шага перебора, выполняем действия = Stop
            Next j
        Next i
    End Sub

    ‘2-й: (число строк, столбцов, заранее неизвестно. Но, известно: ячейка старта и _
           условие при котором нужно ‘прекратить перебор. Скажем: при обнаружении _
           ячейки со словом «Всего:» — по строке в первой колонке перебираемого блока, и _
           пустой ячейки по колонке в первой строке перебираемого блока)

           ‘      Например стартовая ячейка b3
    Sub pereborNeizwestnogoBloka()
        Dim nR As Long
        Dim nC As Integer

            nR = 3
        nC = 2
        Do
            Do
                ‘в ячейке с координатами очередного шага перебора, выполняем действия = Start
                Cells(nR, nC) = nR + nC ‘ — пишем в нее сумму координат
                Cells(nR, nC).Select ‘ — делаем ее активной
                ‘в ячейке с координатами очередного шага перебора, выполняем действия = Stop
                nC = nC + 1
            Loop While Cells(3, nC) <> Empty
            nR = nR + 1
        Loop While Cells(nR, 2).Text <> «Всего»
    End Sub

    Путей к вершине — множество. Этот один из многих!


    _Boroda_ , спасибо!
    теперь, что называется «дошло».
    при сохранении программа видимо обновляет информацию о последней ячейке (Ctrl+End).
    в моем случае еще важно было обратить внимание на отсутствие форматирования в пустых ячейках в конце документа,
    так как они тоже влияют на значение послед. ячейки.
    еще раз спасибо, что помогли решить задачу и разобраться.


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

    Тут вот несколькими постами ниже рассматривался вопрос про размер ячейки — у меня трабл немного похожий, но очевидного решения не нашел.
    В ячейку может быть записано предложение из разного количества слов разной длины. Ширина ячейки пусть будет фиксированная. Работает перенос текста по словам. Нужно посчитать количество «строчек в ячейке», которое по факту занимает предложение. Вариант с анализом состава предложения, поиска пробелов и моделирования логики переноса строк мне кажется слишком навороченным. Можно ли допросить Excel на предмет того сколько «строчек в ячейке» он выделил под текст? Ведь он довольно быстро делает автоматическую высоту ячеек…Или спасение только в анализе текста
    Буду благодарен за советы, поиском порылся — ничего не нашел:(

    Код к задаче: «Количество «строк» текста в одной ячейке»

    textual

    Private Sub Worksheet_Change(ByVal Target <font color="blue">As</font> Range)
    <br><font color="blue">With</font> Target
    <br> <font color="blue">If</font> .Address = <b><font color="green">"$A$<b><font color="darkblue">1</font></b>"</font></b> Then .Offset(<b><font color="darkblue">0</font></b>, <b><font color="darkblue">1</font></b>) = .EntireRow.Height / .Worksheet.StandardHeight
    <br><font color="blue">End</font> <font color="blue">With</font>
    <br><font color="blue">End</font> Sub

    Полезно ли:

    8   голосов , оценка 4.000 из 5

    Вопрос:

    Я разрабатываю приборную панель в excel. И я ищу вычисление количества строк. (Сколько записей присутствует)..

    Поскольку есть несколько пустых ячеек, я думал, что они идут снизу вверх. Я использую следующие

       Range("A1048576").Select
    Selection.End(xlUp).Select
    

    После этого выполнения активная ячейка находится на A113, что означает, что количество строк равно 113.

    Мой вопрос: как получить этот номер 113 из активной ячейки?

    Лучший ответ:

    Вы можете использовать это:

    Dim lastrow as Long
    lastrow = Cells(Rows.Count,"A").End(xlUp).Row
    

    lastrow будет содержать номер последней пустой строки в столбце A, в вашем случае 113

    Ответ №1

    Вот что я обычно использую для этого:

    lastrow = WorksheetFunction.CountA(Columns("A:A"))
    

    Это вернет число непустых ячеек в столбце “А”, что, как я думаю, вам нужно. Надеюсь это поможет.

    Ответ №2

    Если есть небольшая вероятность того, что последняя строка рабочего листа не пуста, вы должны добавить проверку IsEmpty() в решение @simoco. Следовательно; следующая – это функция, которая возвращает последнюю использованную строку и проверяет, является ли последняя строка листа пустой:

    Function lastRow(WS As Worksheet, iColumn As String) As Long
    
    If Not IsEmpty(WS.Range(iColumn & WS.Rows.Count)) Then
    lastRow = WS.Rows.Count
    Else
    lastRow = WS.Range(iColumn & WS.Rows.Count).End(xlUp).Row
    End If
    
    End Function
    

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