VBA复制并粘贴一个单元格与另一个单元格

时间:2018-11-05 20:09:21

标签: excel vba

我是VBA的极端新手,只是发现自己参与其中,因为在我研究时,这似乎是在excel中完成我想要的唯一方法。

在这种情况下,我有一个按钮,应该将数据从G或K中的指定单元格复制到同一工作表中指定单元格的不同位置。

从G16:G18或K16:K18复制数据的第一部分可以无缝工作。我想知道是否是因为这些单元格中没有公式,只有数字。

但是,代码的下一部分似乎仅从K21或K19复制,我不确定为什么这种情况一直发生。我在这些单元格中有公式,并且我相信由于顺序原因,它只是从最后一个有效范围复制结果,即使结果为“”。

下面是我现在拥有的代码:

Private Sub CommandButton2_Click()
        ActiveSheet.Range("G16:G18").Copy
        ActiveSheet.Range("P38:P40").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

        ActiveSheet.Range("K16:K18").Copy
        ActiveSheet.Range("P38:P40").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

        ActiveSheet.Range("G21").Copy
        ActiveSheet.Range("K39").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

        ActiveSheet.Range("G17").Copy
        ActiveSheet.Range("K40").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

        ActiveSheet.Range("K21").Copy
        ActiveSheet.Range("K39").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

        ActiveSheet.Range("K19").Copy
        ActiveSheet.Range("K40").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

End Sub

是因为粘贴值? 有没有解决的办法?

任何见识都将不胜感激!

1 个答案:

答案 0 :(得分:1)

查看粘贴到的位置,粘贴到K39,然后粘贴到K40,然后再次粘贴到K39,然后K40再次覆盖以前的粘贴,因此总是看起来好像没有在做第一个副本,因为第二个已经超过了顶部。