使用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
然后做任何你想要的细胞。