Как использовать переменную для выбора строки - PullRequest
0 голосов
/ 06 апреля 2020

Я работаю над макросом в Excel, чтобы взять данные из двух разных отделов и поместить их в один лист, чтобы использовать данные для сводных таблиц. Когда я запускаю отчет, данные автоматически разделяются на разные листы по отделам. Проблема, с которой я продолжаю сталкиваться, заключается в том, что объем данных (используемых строк) постоянно меняется.

Я получил его до рабочей точки, где я могу получить набор переменных для этой последней строки, но я не могу понять из того, как на самом деле реализовать это. Мне может понадобиться go еще один ряд от того, что он показывает. Я не знаю, как я должен go об этом тоже. Вот что у меня есть для аффилированного кода. Любой совет будет отличным!

    Sheets("30A").Select
    Range("A1").Select
    Range("A1:O1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Sheet1").Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
With ActiveSheet
    Dim lastRow30A As Long
    lastRow30A = Sheet1.Range("A1048576").End(xlUp).Row
End With
    Sheets("40A").Select
    Range("A2:O2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Sheet1").Select
    Range("A1").Select
    Range("lastRow30A").Select

1 Ответ

1 голос
/ 06 апреля 2020

Избегайте использования Select и Activate, они замедляют код:

With Sheets("30A")
    .Range(.Cells(1, 1), .Cells(.Rows.Count, "O").End(xlUp)).Copy Sheets("Sheet1").Range("A1")
End With

Dim lastRow30A As Long
lastRow30A = Sheets("Sheet1").Cells(sheets("Sheet1").Rows.Count, 1).End(xlUp).Row

With Sheets("40A")
    .Range(.Cells(1, 1), .Cells(.Rows.Count, "O").End(xlUp)).Copy Sheets("Sheet1").Cells(lastrow30, 1)
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...