1

vbaでExcelプロセスを自動化しようとしています。

2010 年から始まる各月の列があります (これは無限に、または少なくとも Excel の制限内で拡張できます)。その下には、数値データが含まれる約 500 行があります。

したがって、使用されていない最後の列 (当月) を見つけて、その下のすべての行を vlookup から入力したいと思います。

ありがとう。


ワーキングコード!

With ActiveSheet.Range("IV42").End(xlToLeft)
    Dim iRow As Integer
    For iRow = 1 To 581

        Dim Lookup_Value, Table_Array, Col_Index, Range_Lookup As String
        Lookup_Value = "B42:B622"
        Table_Array = "'Current Rankings'!$B$2:$C$607"
        Col_Index = "2"
        Range_Lookup = "False"
        .Offset(iRow - 1, 0).Formula = "=VLOOKUP(" & Lookup_Value & "," & Table_Array & "," & Col_Index & "," & Range_Lookup & ")"

    Next iRow
End With
4

1 に答える 1

2

最後の列を見つけるには、 を使用しますActiveSheet.Range("IV1").End(xlToLeft)。(最初の行に値があると仮定しています)

そのため、最後に使用した列の直後の列を見つけるには、 を使用できますActiveSheet.Range("IV1").End(xlToLeft).Range("B1")。これは、新しい月の列の最初のセルを指します。

次に、単純なループを実行して列を埋めることができます...コードは次のようになります。

With ActiveSheet.Range("IV1").End(xlToLeft).Range("B1")
    Dim iRow as Integer
    for iRow = 1 to 500

        Dim Lookup_Value, Table_Array, Col_Index, Range_Lookup
        Lookup_Value = ????
        Table_Array = ????
        Col_Index = ????
        Range_Lookup = ????

        .Offset(iRow-1,0).Formula = "=VLOOKUP(" & "," & _
            Lookup_Value & _"," & _
            Table_Array & "," & _
            Col_Index_Num & "," & _
            Range_Lookup & ")"

    next iRow
end with
于 2012-09-20T14:12:45.967 に答える