Excel VBA,查找下一个空单元格
我想做的应该很容易,但我内心的noob正在显现。我正在使用另一个工作表中的数据输入表单在excel中创建数据库。单击“输入”按钮时,它会运行一个宏,将数据输入表中的信息放入Excel数据库。当然,问题是下一条记录会覆盖上一条记录。我要做的是从dataentry表单中的一个字段复制数据,然后转到数据库,找到下一个空行并将信息粘贴到那里。理想情况下,该过程将继续并复制数据输入表单中的下一个字段,在先前粘贴的数据右侧找到空单元格,然后重复,直到所有6个字段都已复制并粘贴到excel数据库。我想在excel中完成这一切,而不是进入access数据库。有什么想法吗 你可以试试Excel VBA,查找下一个空单元格,excel,vba,Excel,Vba,我想做的应该很容易,但我内心的noob正在显现。我正在使用另一个工作表中的数据输入表单在excel中创建数据库。单击“输入”按钮时,它会运行一个宏,将数据输入表中的信息放入Excel数据库。当然,问题是下一条记录会覆盖上一条记录。我要做的是从dataentry表单中的一个字段复制数据,然后转到数据库,找到下一个空行并将信息粘贴到那里。理想情况下,该过程将继续并复制数据输入表单中的下一个字段,在先前粘贴的数据右侧找到空单元格,然后重复,直到所有6个字段都已复制并粘贴到excel数据库。我想在exc
Sub LastRow()
Dim rngLast As Range
With ThisWorkbook.Worksheets("Sheet1")
If .Range("A1").Value = "" Then
Set rngLast = .Range("A1")
Else
Set rngLast = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End If
MsgBox "Next blank row is " & rngLast.Address
End With
End Sub
这将查找所提供工作簿和工作表中使用的最后一个单元格(最后一列和最后一行)。适应口味(例如,如果您只使用一个工作簿,则不需要targetwkb)。如果您不需要查找最后一列,或者只需要给定列的特定最后一行,您可以使用工作表(targetSheet).Range(“a:a”)或类似的内容定义不同的“With”部分(w.e.):
Function FindLastCell(targetWbk As String, targetSheet As String) As Range
Dim LastColumn As Integer, lastRow As Integer
'Finds the last used cell in target wbk/sheet
With Workbooks(targetWbk).Worksheets(targetSheet)
lastRow = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
LastColumn = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set FindLastCell = Range(.Cells(1, 1), .Cells(lastRow, LastColumn))
End With
End Function
总的来说,上述方法是一种更好的方法,因为它从最后一个单元格搜索到顶部。另一种方法是,如果您有一个空单元格,Excel将停止搜索,并且您可以覆盖后面的所有数据,仅仅因为某个空单元格被保留在某个位置
如果你有很多数据(比如10万个)您可能需要长时间更改整数,这样您就不会碰到整数限制。它也不需要是函数,也可以是子函数,但没什么大不了的…欢迎使用它!在web上有很多这样做的示例。请了解如何提问,以及什么是好问题。可能重复的