检查每行使用的lastcolumn

时间:2015-02-06 11:26:34

标签: excel vba excel-vba

每行可以使用不同的最后一列。我想检查最后一列的每一行的列。我怎么能这样做?

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

此代码用于查找最后一列(所有行都是通用的)。但是我想检查每行的最后使用的不同列。

1 个答案:

答案 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 上的数据。因此,在运行此代码示例之前,请务必选择包含数据的工作表。

enter image description here

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}}