如何使用变量选择行

时间:2020-04-06 20:51:45

标签: excel vba

我正在Excel中的宏上工作,以从2个不同部门获取数据,并将它们放在同一张工作表中以将数据用于数据透视表。运行报告时,部门会自动将数据分离到不同的工作表中。我一直遇到的问题是数据量(使用的行)总是在变化。

我已经到了工作点,在那里我可以为最后一行获取变量集,但是我无法弄清楚如何实际实现它。我可能需要从显示的内容再向下排一行。我也不知道该怎么办。这是我对附属代码的要求。任何建议都会很棒!

    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 个答案:

答案 0 :(得分:1)

避免使用SelectActivate会使代码变慢:

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
相关问题