如何find应该是空白但有空格的列中的最后一个单元格?
所以我有大约20,000条logging的数据。 我想要设置的范围,只有数据从第2行到20,000在列A中检查。但是,单元20,001不是空白,它也可以包含空格。 (这些数据是在validation之前导入的,所以我不能改变它)
当我使用。结束(xlUp)它结束检查,直到第5万行。
任何帮助?
样品:
A栏
一个
乙
(插入2个空格)
我只想检查单元格直到B(包括它)
更新:pipe理将最后所需的单元格返回到主子
Private Sub last() Dim rngX As Range Set rngX = ActiveSheet.Range("A1").EntireColumn.Find(" ", lookat:=xlPart) If Not rngX Is Nothing Then /* return value End If End Sub
GD花生,
如果你想使用VBA,你可以考虑检查[空间]字符? 假设单元格只包含空格(或者只有一个空格)
就像是:
Dim r as range set r = range("B") For each c in r.rows if instr(1, c.value,chr(32)) > 0 then 'do something end if next
你可以检查cell.valuestring中的所有字符来validation它们只是空格吗?
这有帮助吗?
我相信你将不得不单独testing每个单元格。 为了使检查的单元格数量更小,并加快速度,我首先要读取列来检查一个Variant数组,然后从底部到顶部检查。 我的空间真的是一个space
,下面的testing将工作。 如果这个空间是一个NBSP
,或者一个组合,那么你将不得不修改这个支票,以确保这是唯一存在的东西。
例如:检查列A:
Option Explicit Sub foo() Dim R As Range Dim WS As Worksheet Dim V As Variant Dim I As Long Set WS = Worksheets("sheet2") With WS V = .Range("a1", .Cells(.Rows.Count, "A").End(xlUp)) For I = UBound(V) To LBound(V) Step -1 'Revise this check line as needed If Len(Trim(V(I, 1))) > 0 Then Exit For Next I Set R = .Cells(I, 1) End With Debug.Print R.Address End Sub
如果所有单元格都为空,则可能需要添加一些错误检查。