如何使用按钮将单元格内容范围移动到工作表中的另一个范围

时间:2019-02-19 18:48:38

标签: excel vba

每天,我运行一个查询来替换Sheet1上Excel工作簿中的数据。 Sheet2是使用公式汇总Sheet1上新数据的报告。我需要开始对Sheet3上的报表数据进行趋势分析。我想在Sheet2上放置一个按钮,我可以单击该按钮将数据从Sheet2的C20:N20中移出并将其存储在Sheet3的B:M列的下一个可用行中。我知道我可以只记录一个宏并获取该代码并将其分配给按钮,但是我不知道如何告诉代码查找下一个可用行。

这是错误的,但是代表了我正在尝试做的事情,如何解决?

Sub Apv_Conv_TrendIt()
Dim LastRow As Long
LastRow = Sheets("Sheet3").Range("B1000000").End(xlUp).Row + 1: Sheets("Sheet3").Range("M1000000").End(xlUp).Row 1
Sheets("Sheet3").Range("B" & LastRow) = Sheets("Sheet2").Range("C20:N20")

End Sub

3 个答案:

答案 0 :(得分:3)

尝试使用转帐

代替复制/粘贴
Sub Move()

Dim cRange As Range, LR As Long

With ThisWorkbook.Sheets("Sheet3")
    LR = .Range("B" & .Rows.Count).End(xlUp).Offset(1).Row
    Set cRange = ThisWorkbook.Sheets("Sheet2").Range("C20:N20")
    .Range(.Cells(LR, "B"), .Cells(LR, "M")).Value = cRange.Value
End With

End Sub

答案 1 :(得分:0)

回答您的问题。保持简单

在sheet2上创建一个按钮

为按钮分配一个新的宏,并将这一行代码放在Sub和End Sub之间

Sheets("Sheet2").Range("C20:N20").Copy Destination:=Sheets("Sheet3").Cells(Rows.Count, 2).End(xlUp).Offset(1)

答案 2 :(得分:-1)

有多种方法可以做到这一点。这是一个选择。

Sub CopyRange()
Worksheets("Sheet1").Range("A1:D20").Copy Worksheets("Sheet2").Range("A1")
End Sub

现在,如果范围会动态变化,那么您将需要这样做。

Sub SelectFilledCells()
Range("A1", Range("A1").End(xlDown).End(xlToRight)).Select
End Sub

也请看一下这些链接。

https://www.thespreadsheetguru.com/blog/2014/7/7/5-different-ways-to-find-the-last-row-or-last-column-using-vba

https://www.spreadsheetsmadeeasy.com/assign-button-macro/