每天,我运行一个查询来替换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
答案 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
也请看一下这些链接。