我有一张excel表,我需要找到特定行中的最后一个非空单元格.
我该怎么做呢?
下面将为我选择这个,但它将选择第一个非空单元格,我需要行#29中的最后一个非空单元格.
Worksheets("DTCs").Range("A29").End(xlToRight).Select
bre*_*tdj 14
我已经扩展了上面的评论,以提供解决方案
Select在Find在第二码方法是建立第一非空白单元格的一个更为直接的方法
这一行Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlValues, , xlByColumns, xlPrevious)
说,从Sheet"DTCa"的单元格A1开始,然后向后看(即从第1行的最后一个单元格)第1行中的列查找任何内容(the *).此方法要么找到最后一个非空白或返回Nothing,即空行
使用xltoLeft特定检查
Sub Method1()
Dim ws As Worksheet
Dim rng1 As Range
Set ws = Sheets("DTCs")
If ws.Cells(1, Columns.Count) = vbNullString Then
Set rng1 = ws.Cells(1, Columns.Count).End(xlToLeft)
If rng1.Column <> 1 Then
'return last used cell
MsgBox "rng1 contains " & rng1.Address(0, 0)
Else
If ws.[a1] = vbNullString Then
MsgBox ws.Name & " row1 is completely empty", vbCritical
Else
'true last used cell is A1
MsgBox "rng1 contains " & rng1.Address(0, 0)
End If
End If
Else
'last cell is non-blank
MsgBox ws.Cells(1, Columns.Count) & " contains a value", vbCritical
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
推荐的
Sub Method2()
Dim ws As Worksheet
Dim rng1 As Range
Set ws = Sheets("DTCs")
Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlFormulas, , xlByColumns, xlPrevious)
If Not rng1 Is Nothing Then
MsgBox "rng1 contains " & rng1.Address(0, 0)
Else
MsgBox ws.Name & " row1 is completely empty", vbCritical
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
Han*_*son 12
我认为它可能只是从另一个方向搜索,所以类似于:
Worksheets("DTCs").Range("IV29").End(xlToLeft).Select
Run Code Online (Sandbox Code Playgroud)
虽然可能需要根据Excel的版本将IV改为其他东西(这似乎在2003年有效).
| 归档时间: |
|
| 查看次数: |
54261 次 |
| 最近记录: |