每行可以使用不同的最后一列。我想检查最后一列的每一行的列。我怎么能这样做?
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim LastCol As Long
Dim rng As Range
Set ws = Sheets("Sheet1")
Set rng = ws.Cells.Find(What:="*", _
After:=ws.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
If rng Is Nothing Then
LastCol = 1
Else
LastCol = rng.Column
End If
Debug.Print LastCol
End Sub
此代码用于查找最后一列(所有行都是通用的)。但是我想检查每行的最后使用的不同列。
答案 0 :(得分:1)
有许多不同的方法,这里有一个使用以下数据的演示。它还为您提供了一种使用A列查找最后一行的方法。您可能需要编写一些内容来将列号转换为列字母。
另请注意,您可以使用变量指定要测试的行/列。 rw
中的Cells(rw, Columns.Count)
或"A"
Cells(Rows.Count, "A")
中的Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
。
最后,特别是如果您使用多个工作表,您可能还需要注意指定您使用的数据所在的工作表,如ActiveSheet
中所示。在我的例子中,除非另有说明,否则'这样,将使用Option Explicit
Sub lastCol()
Dim lCol As Long, rw As Long
For rw = 1 To Cells(Rows.Count, "A").End(xlUp).Row
lCol = Cells(rw, Columns.Count).End(xlToLeft).Column
MsgBox "For row " & rw & ", last column is " & lCol
Next rw
End Sub
上的数据。因此,在运行此代码示例之前,请务必选择包含数据的工作表。
Sub lrow()
Dim lCol As Long, rw As Long
For rw = 1 To Cells(Rows.Count, "A").End(xlUp).Row
lCol = Cells(rw, Columns.Count).End(xlToLeft).Column
If Cells(rw, lCol).Value = "rajani" Then
MsgBox "Row " & rw & ", last column " & lCol & " contains rajani"
End If
Next rw
End Sub
修改强>
{{1}}