Excel VBA复制和粘贴(不使用复制+粘贴function)在空行上

我以前做过这个,我正在摸索着为什么我弄不明白。

我试图从一张纸上拉出数据并粘贴到下一行的另一张纸上。 我之前没有使用“复制”或“粘贴”VBAfunction,我做了这个。我只是使用值,我想使用户更容易这种方式(没有随机复制的东西在Excel剪贴板上)

这是我的代码:

Sub SubmitChange() row_number = 2 Do DoEvents Row_number = row_number + 1 item_in_review = Sheet44.Range("B" & row_number) Loop Until item_in_review = "" Sheet44.Range("B" & row_number) = Sheet43.Range(A6).Value End Sub 

尝试这个:

 Option Explicit Sub SubmitChange() Dim lastRow As Long lastRow = Sheet44.Cells(Sheet44.Rows.Count, 2).End(xlUp).Row + 1 Sheet44.Range("B" & lastRow).Value2 = Sheet43.Range("A6").Value2 End Sub 

笔记:

  • 您应该始终在模块的顶部使用Option Explicit

    • 它会迫使你正确地声明variables
  • 如果你没有任何修改就复制和粘贴你的代码,这是一个微妙的问题:

    • 你的variables“Row_number”定义在这个子(全局)范围之外,
    • 在这个子里面,你有第二个variables名为“row_number”(小写字母“r”)
    • 循环递增全局variables“Row_number”
    • 但在最后一行,值总是分配给Sheet44.Range(“B2”)
    • “row_number”(本地到这个子)永远不会像你所期望的那样增加

另一个问题是这个Sheet43.Range(A6).Value应该是这个Sheet43.Range("A6").Value