How to determine first column used in each row after column A using VBA

时间:2016-04-04 16:35:15

标签: vba excel-vba excel

I am trying to add code to one of my worksheets that determines what the first column is with a value in it for each row (excluding the first column A because it is all headings). I have searched but cannot find anything that works for the FIRST occurrence in a row. Thank you for the help.

2 个答案:

答案 0 :(得分:0)

The following code will return the cell address of the first occurrence of data in a row for a set of columns.

It's unclear to me from your question, whether you want to look for the first occurrence of data in a row for a given column (what I wrote below), or the first occurrence of data in a column for a given row (if you need this, change the word Columns to the word Rows in the below code).

Sub FindFirstRowWithData()

With Worksheets("Sheet1")

    Dim lCol As Long

    For lCol = 2 To 10 'loop through columns B to J

        Dim rngFound As Range
        Set rngFound = .Columns(lCol).Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlNext)

        If Not rngFound is Nothing then
            Debug.Print rngFound.Address
        Else
            Msgbox "No Data in column " & lCol.
        End If

    Next

End With

End Sub

答案 1 :(得分:0)

try this

Option Explicit

Sub FindFirstColumn()
    Dim rngToScan As Range
    Dim value As Variant

    value = "a" '<== set it as the value of which first occurrence you want to search for
    Set rngToScan = ActiveSheet.Range("B2:F100") '<== set it as the actual range of which columns will be searched the first occurrence of variable 'value'
    With rngToScan
        .Offset(, .Columns.Count).Resize(, 1).FormulaR1C1 = "=match(""" & value & """,RC2:RC" & .Columns(.Columns.Count).Column & ",0)"
    End With
End Sub