查找表格中某一列的第一个空白单元格

查找表格中某一列的第一个空白单元格

我正在尝试使用以下代码查找表中某一列的第一个空白单元格:

'Find next blank cell in results sheet
lLastRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1

'Paste results in the result sheet
.Range("A" & lLastRow).Value = Worksheets(strSheet).Range(strAddress).Value

问题是它只能找到表格后的第一个空白单元格。有没有什么办法让它在表格内工作?

答案1

尝试一下:

Public Function IdentifyLastRowInBlock() As Long
  With Sheet1
    Dim lastRow As Long
    lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
    Dim blankRow As Long
    blankRow = .Range(.Cells(3, 1), .Cells(lastRow, 1)).End(xlDown).Row + 1
  End With
  IdentifyLastRowInBlock = blankRow
End Function

请注意,这将返回从第 3 行开始的最后一个未使用的行。由于不知道您的代码,我只是硬编码了起始点 - 您必须对其进行修改以适应您的情况。我实际上建议将其作为函数的参数,以便将来更加灵活。它也是硬编码的,用于查找第 1 列(“A”),也可以将其作为参数。

另请注意,如果表的第 1 列恰好已“满”,它将找到第一行表格。表格的妙处在于它们可以自动扩展,因此如果您在现有表格后的第一行中输入一个值,Excel 将为您扩展表格。

答案2

.End功能还有其他选项,xlUp因此您可以从顶部开始然后向下进行。

lLastRow = .Range("A1").End(xlDown).Row + 1

答案3

最终得到了这个巫婆的作品

出错时继续下一步 lLastRow = Range("A29:A67").Find(What:="", _ After:=Range("A29"), _ LookAt:=xlWhole, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False).Row On Error GoTo 0

            'Paste results in the result sheet
                .Range("A" & lLastRow).Value = Worksheets(strSheet).Range(strAddress).Value

相关内容