vba - Excel VBA 在空行上复制和粘贴(不使用复制+粘贴功能)

标签 vba excel copy paste

我以前做过这个,但我很困惑为什么我无法弄清楚。

我正在尝试从一张纸中提取数据并将其粘贴到下一行的另一张纸中。 我以前做过这件事,没有使用“复制”或“粘贴”VBA 函数。我只是使用了值,我希望这样可以让用户更轻松(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

    • 它将迫使您正确声明变量
  • 如果您复制并粘贴代码而不进行任何更改,则会出现一个微妙的问题:

    • 您的变量“Row_number”是在此子范围之外定义的(全局)
    • 在该子文件中,您有第二个名为“row_number”(小写“r”)的变量
    • 循环递增全局变量“Row_number”
    • 但在最后一行,值始终分配给 Sheet44.Range("B2")
    • “row_number”(此子级的本地)永远不会像您期望的那样增加

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

关于vba - Excel VBA 在空行上复制和粘贴(不使用复制+粘贴功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152282/

相关文章:

ms-access - 设置 rs = 无 : useful before closing form ?

java - Files.copy(src, dst) 抛出 NoSuchFileException

C++(E0158 表达式必须是左值或函数指示符)和(错误 C2102 '&' 需要左值)

java - Ant 是否保证文件集的顺序?

arrays - VBA计算数组的非空元素

sql-server - 更新 Excel 宏中的多个 SQL 连接字符串

vba - 定义可以带空参数的函数

arrays - 使用 2 个单独的列定义数组

mysql - excel csv 到 mysql-numbers >1000 变为 1.00

excel - Powerbuilder saveas xlsx,在 170000 行之后它不起作用,返回 -1 或崩溃