Мне нужно ограничить количество строк, копируемых из листа в книгу - PullRequest
0 голосов
/ 13 января 2020

У меня есть отличный код VBA. это работает на 100%, но работает хорошо, поскольку копирует весь рабочий лист, а не только ячейки с данными. Там будет около 3000 строк. так как я могу ограничить копию до 5000 строк и столбца bz?

Private Sub CommandButton1_Click()
Application.CopyObjectsWithCells = False
 Dim newBook As Excel.Workbook
    Dim rng As Excel.Range

    Set newBook = Workbooks.Add

    Set rng = ThisWorkbook.Worksheets("Accounts Full").Cells.SpecialCells(xlCellTypeVisible)

    rng.Copy newBook.Worksheets("Sheet1").Range("A1")
Application.CopyObjectsWithCells = True 'reset
End Sub

1 Ответ

1 голос
/ 13 января 2020

Пара способов сделать это, самое простое - просто установить диапазон:

Set rng = ThisWorkbook.Worksheets("Accounts Full").Range("A1:BZ5000").SpecialCells(xlCellTypeVisible)

Или вы можете получить UsedRange (обратите внимание, ваш пробег может варьироваться в зависимости от того, как данные фактически структурировано):

Set rng = ThisWorkbook.Worksheets("AccountsFull").UsedRange

Или получите более точные значения c с последним столбцом и строкой (при условии, что строка 1 имеет заголовки):

Dim lastCol as Range, lastCel as Range
Set lastCol = ThisWorkbook.Worksheets("x").Cells(1, Columns.Count).End(xlToLeft)
Set lastCel = ThisWorkbook.Worksheets("x").Cells(rows.count,lastCol.Column).End(xlUp)
Set rng = ThisWorkbook.Worksheets("x").Range("A1",lastCel)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...