Запустите макрос в рабочей книге, и он подсчитает все строки в рабочей книге, даже если листы будут добавлены позже - PullRequest
0 голосов
/ 16 мая 2019

Я запускаю макрос для файла Excel, который обновляется ежедневно.

В настоящее время для этого файла задано количество страниц X, но всегда есть возможность добавить 1 или 2 листа.

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

Таким образом, макрос будет считать все строки в рабочей книге 1;с листами 1,2,3,4

Один и тот же макрос должен иметь возможность подсчитать все строки в рабочей книге 1;с листами 1, 2, 3, 4, с листом 5, добавленным позже.

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

Dim sw As Worksheet
 Dim accum As Long
 Dim rowcounter As Long
 accum = 0
    For Each sw In ActiveWorkbook.Worksheets
    rowcounter = Cells(Rows.Count, "A").End(xlUp).Row
    accum = rowcounter + accum
    Next sw

Range("B35").Select
ActiveCell.FormulaR1C1 = _
    "= " & accum & ""

выше - текущий код, который я выполняю.

1 Ответ

1 голос
/ 16 мая 2019

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

Dim sw As Worksheet
Dim accum As Long
Dim rowcounter As Long
Dim strMsgbox  As String
accum = 0
For Each sw In ActiveWorkbook.Worksheets
    rowcounter = sw.Cells(Rows.Count, "A").End(xlUp).Row
    accum = rowcounter + accum
    strMsgbox = strMsgbox & vbNewLine & sw.Name & " rows: " & rowcounter
Next sw

'Range("B35").Value = accum
MsgBox strMsgbox & vbNewLine & "Total Rows: " & accum
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...