Excel 代码没有在上面的空行上粘贴值
我一直在使用一个代码将数据复制并粘贴到表中 现在的问题是,当代码粘贴数据时,它从表的末尾开始,而不是从第二行开始 这是我的密码Excel 代码没有在上面的空行上粘贴值,excel,vba,Excel,Vba,我一直在使用一个代码将数据复制并粘贴到表中 现在的问题是,当代码粘贴数据时,它从表的末尾开始,而不是从第二行开始 这是我的密码 sh5.Range("B6:C6").Value = sh4.Range("AF10:AG10").Value lastR = sh6.Range("G" & Rows.Count).End(xlUp).Row + 1 sh6.Range("G"
sh5.Range("B6:C6").Value = sh4.Range("AF10:AG10").Value
lastR = sh6.Range("G" & Rows.Count).End(xlUp).Row + 1
sh6.Range("G" & lastR).Resize(1, 2).Value = sh5.Range("B6:C6").Value
它应该粘贴第2行的数据,因为它是空的
对此问题的任何帮助都将不胜感激
在一张桌子上,事情会不同。。。请尝试下一种方法:
Sub testLastEmptyRTable()
Dim sh5 As Worksheet, sh6 As Worksheet, lastR As Long, rngLst As Range
Set sh5 = Worksheets("Sheet5")
Set sh6 = Worksheets("Sheet6")
Set rngLst = sh6.ListObjects(1).DataBodyRange 'if you have more then one table, use its name
lastR = rngLst.cells(rngLst.rows.count, 1).End(xlUp).row + 1
sh6.Range("G" & lastR).Resize(1, 2).Value = sh5.Range("B6:C6").Value
End Sub
您的问题在于
lastR=sh6.Range(“G”和Rows.Count).End(xlUp).Row+1
。因为它是一个表对象,所以该方法将停止在表的底部。感谢您对如何解决该问题的回答。另一个端点(xlUp)应该可以解决这个问题lastR=sh6.Range(“G”和Rows.Count).End(xlUp).End(xlUp).Row+1
I使用您的方式@Axuary,但它会停止在第3、4、5行等中添加更多数据,直到停止按run按钮Faneduru,谢谢您的回答,但如何添加范围?在将保存数据的代码中pasted@Learning:当然,我没有那样做。我不在乎这么简单的问题。。。我只是试着告诉你如何确定表中的最后一行。。。如何知道哪些是合适的二手纸?它是在活动工作表上工作的通用代码。如果你能申报你的床单并把它们放好,我就能看到它们指的是什么。否则,我怎么知道他们指的是什么表?我是否应该推断sh5
指的是“Sheet5”表,sh6
指的是“Sheet6”?学习:我更新了上面的代码,试图猜测。但这不是一种编写代码的方法。。。我认为这种定制很简单,可以自己完成。否则,您的学习过程将需要更多的时间……:)@学习:我猜到相关的参考资料了吗?代码现在是否按您的需要工作?除此之外,为了避免这些问题,请将选项Explicit
放在所有模块的顶部。这将在未声明变量时警告您…@Learning:很高兴我能帮上忙!。但我认为是时候大胆尝试了……:)