在下一个空行的不同工作表中复制并粘贴(转置和值)设定范围

Alb*_*lbF 2 excel vba

range P1:R13在一张名为“训练分析”的表格上有一些数据。我想将copy and paste这些数据放在名为 Foglio1 的第二张纸上。我希望它是公正的values。我需要将这些数据粘贴到 a 中range A2:M4,换句话说,我希望将其转置。我得到了以下代码并且它正在工作。但现在,当我获得新数据时,我需要将它们粘贴到我已有的数据下。

Sub add()
    Dim lastrow As Long
    lastrow = Sheets("Foglio1").Range("A65536").End(xlUp).Row    ' or + 1
    Range("P1:R13").Copy Destination:=Sheets("Foglio1").Range("A" & lastrow)
End Sub
Run Code Online (Sandbox Code Playgroud)

它会填充空白空间,但我不知道如何更改它以使其转置数据并只给我值。你能帮我改一下吗?如果你有新的选择也很好。干杯

小智 5

当你遇到这样的问题时,你需要做的是记录一个宏,了解它是如何工作的,然后清理代码。

这是手动执行所需操作并记录后将得到的结果:

Range("P1:R13").Select
Selection.Copy
Sheets("Foglio1").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
Run Code Online (Sandbox Code Playgroud)

稍微清理一下并添加确定最后一行后,您应该得到以下结果:

Dim lastRow As Long
Sheets("Training Analysis").Range("P1:R13").Copy

lastRow = Sheets("Foglio1").Range("a65536").End(xlUp).Row

Sheets("Foglio1").Range("A" & lastRow + 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,您不知道需要使用 PasteSpecial 方法,但这没关系:您不需要记住整个 Excel 对象模型。当你遇到这样的情况时,你可以使用“记录、清理和修改”的方法。