我以前做过这个,但我很困惑为什么我无法弄清楚。
我正在尝试从一张纸中提取数据并将其粘贴到下一行的另一张纸中。 我以前做过这件事,没有使用“复制”或“粘贴”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/