使用Excel vba查找并select列B中的第一个空白单元格

下面的代码工作正常,find给定列中的第一个空单元格(这里是列B)。 但我需要的是一个代码来find该列中的第一个空白单元格。

Sub macro1() Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer Dim currentRowValue As String sourceCol = 2 'column B has a value of 2 rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row 'for every row, find the first blank cell and select it For currentRow = 1 To rowCount currentRowValue = Cells(currentRow, sourceCol).Value If IsEmpty(currentRowValue) Or currentRowValue = "" Then Cells(currentRow, sourceCol).Select End If Next End Sub 

另外,它应该从第10行开始查找,而不是第1行。

有人可以重写这个代码来做到这一点?

可以这样的事情是你要找的东西:

 Sub test() Dim ws As Worksheet Set ws = ActiveSheet For Each cell In ws.Columns(2).Cells If IsEmpty(cell) = True Then cell.Select: Exit For Next cell End Sub 

这将通过活动工作表中列B中的每个单元格,并select它遇到的第一个空单元格。 将表单设置为特定的一个Change Set ws = ActiveSheet to Set ws = Sheets("EnterSheetNameHere")

或者你可以尝试使用:

 Sub test() Dim ws As Worksheet Set ws = ActiveSheet For Each cell In ws.Columns(2).Cells If Len(cell) = 0 Then cell.Select: Exit For Next cell End Sub 

我的问题是通过使用下面的代码来解决的。

 Sheets("sheet1").Select Dim LR2 As Long, cell2 As Range, rng2 As Range With Sheets("sheet1") LR2 = .Range("B" & Rows.Count).End(xlUp).Row For Each cell2 In .Range("B8:B" & LR2) If cell2.Value <> "" Then If rng2 Is Nothing Then Set rng2 = cell2 Else Set rng2 = Union(rng2, cell2) End If End If Next cell2 rng2.Select End With 

只是我的两分钱。

该函数将查找在一个范围内遇到的第一个空白单元格,所以它应该与列和行一起工作。

 'Find first BLANK cell in a given range, returnt a range (one cell) Function FirstBlank(ByVal rWhere As Range) As Range Dim vCell As Variant Dim answer As Range Set answer = Nothing For Each vCell In rWhere.Cells If Len(vCell.Formula) = 0 Then Set answer = vCell Exit For End If Next vCell Set FirstBlank = answer End Function 

然后做任何你想要的细胞。