【发布时间】:2013-10-14 02:02:30
【问题描述】:
我在使用 VBA 子例程时遇到了一些困难,该例程获取在 Excel 工作簿的第一张表 -“条目”上输入的信息,并将其粘贴到同一工作簿 -“数据库”内的单独工作表中。我需要的是将数据添加到数据库的下一个空行中。
我明白这是一个很常见的问题,但我一直在 Google 上寻找今天早上最好的部分,但无法完全理解!到目前为止我管理的代码会复制数据,但总是会覆盖第一行:
Sub CopyDataToDatabase()
Application.ScreenUpdating = False
Dim r As Range
Set r = Sheets("Entry").Range("B6:M6")
For Each cell In r
If IsEmpty(cell) Then
MsgBox ("Error - all boxes must be filled in!")
Cancel = True
Exit Sub
Exit For
End If
Next
Dim NextRow As Range
Set NextRow = Sheets("Database").Range("A2:L2").End(xlUp).Offset(1, 0)
' Set NextRow = Sheets("Database").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Entry").Range("B6:M6").Copy
NextRow.PasteSpecial (xlValues)
MsgBox ("Data added successfully!")
Sheets("Entry").Range("B6:M6").ClearContents
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Set NextRow 的注释是我尝试的另一种方法,但不起作用(错误是“需要对象”)。
感谢您提供任何帮助,如果您能解释一下就更是如此 - 因为我对 VBA 有点陌生!
提前致谢。
【问题讨论】:
-
我建议查看此链接stackoverflow.com/questions/11169445/… 要查找 Col A 中的最后一个单元格,请使用下面@ChrisNeilson 指定的方法。但是,如果 Col A Last 单元格可能与 Col B - Col L 不同,则使用方法
.Find查找最后一个单元格,然后使用它来创建范围。