[英]Find and select first blank cell in column B with Excel vba
以下代码可以很好地找到给定列(此处为B列)中的第一个空单元格。 但是我需要的是找到该列第一个空白单元格的代码。
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列的每个单元格,并选择它遇到的第一个空单元格。 要将工作表设置为特定的一个, Set ws = ActiveSheet
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
只是我的两分钱。
该函数将查找范围中第一个遇到的BLANK单元,因此它应适用于列和行。
'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
然后对单元格进行任何您想要的操作。
尝试使用此代码选择单元格B10下的第一个空单元格。 但这要求B10和B11被预先占用。
Range(“ B10”)。End(xlDown).Offset(1、0)。选择
要么
范围(“ B100000”)。结束(xlUp)。偏移量(1、0)。选择
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.