Excel VBA 在空行上复制和粘贴(不使用复制+粘贴功能)
Excel VBA Copy and Paste (without using Copy+Paste functions) on empty row
我以前做过,但我一直在摸不着头脑,想不通。
我正在尝试从一个 sheet 中提取数据并将其粘贴到下一行的另一个 sheet 中。
我之前在不使用 "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"定义在这个子(全局)范围之外
- 在这个 sub 中你有第二个变量名为 "row_number"(小写 "r")
- 循环递增全局变量"Row_number"
- 但在最后一行中,值总是分配给 Sheet44.Range("B2")
- "row_number"(此子的本地)永远不会像您期望的那样增加
另一个问题是这个Sheet43.Range(A6).Value
应该是这个Sheet43.Range("A6").Value
我以前做过,但我一直在摸不着头脑,想不通。
我正在尝试从一个 sheet 中提取数据并将其粘贴到下一行的另一个 sheet 中。 我之前在不使用 "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"定义在这个子(全局)范围之外
- 在这个 sub 中你有第二个变量名为 "row_number"(小写 "r")
- 循环递增全局变量"Row_number"
- 但在最后一行中,值总是分配给 Sheet44.Range("B2")
- "row_number"(此子的本地)永远不会像您期望的那样增加
另一个问题是这个Sheet43.Range(A6).Value
应该是这个Sheet43.Range("A6").Value