【问题标题】:Insert Row and Copy and Paste Values插入行以及复制和粘贴值
【发布时间】:2018-03-15 14:13:33
【问题描述】:

我有一个“状态”类型的报告,它从各种来源中提取到一个工作表中。我的最终目标是基本上保留每个条目的日志。所以我创建了一个宏,它将复制 Sheet8 中的范围,在 Sheet11 上插入一个新行,然后将该行粘贴到 Sheet11 中。此外,我添加了一行来删除 excel 选择。 我的问题是粘贴是粘贴公式,而不是值。 如何将Sheet8中单元格的值粘贴到Sheet11上?

Sub copyRowToBelow()
On Error GoTo Err_Execute
    Sheet8.Range("A2:L2").Copy
    Sheet11.Range("A2").Rows("2:2").Insert Shift:=xlDown
    Sheet8.Range("A2:L2").Select
    Application.CutCopyMode = False

Err_Execute:
    If Err.Number = 0 Then MsgBox "All have been copied!" Else _
    MsgBox Err.Description
End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以先向下移动,然后通过将两行的值设置为彼此相等来复制数据。

    另外,你的意思是只向下移动一个单元格?不是整行?我下面的代码将第 2 行下方的整行向下移动。

    Sub copyRowToBelow()
    On Error GoTo Err_Execute
        Sheet11.Range("A2").Rows("2:2").EntireRow.Insert Shift:=xlDown
        Sheet11.Range("A3:L3").Value = Sheet8.Range("A2:L2").Value
    
    Err_Execute:
        If Err.Number = 0 Then MsgBox "All have been copied!" Else _
        MsgBox Err.Description
    End Sub
    

    【讨论】:

    • 我的意思是整行。你能解释一下第 4 行是如何工作的吗?这是否实质上使 Sheet11 中的范围等于 Sheet8 中的数据?
    • @MaxZ - 是的,Range("A1").Value = Range("B1").ValueA1 提供与B1 相同的,无需任何格式或其他更改。这和Range("A1").Copy // Range("B2").PasteSpecial Paste:=xlPasteValues 一样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    相关资源
    最近更新 更多