1

私は VBA が初めてで、構文の一部を理解するのに苦労しています。

たとえば、からの範囲がありa3:c13、それを変数として設定したいので、後でテーブル配列として vlookup に渡すことができます。ただし、範囲は、そのサイズに関してユーザー入力によって定義されます。常に から始まり、A3常に列が含まれますA:Cが、どこまで続くかはわかりません。その場合、次のように設定すると思います。

With range("a3")
    table_array = range(.cells(0,0), .End(xlDown).End(xlToRight)).Select
End With

しかし、それはうまくいかないようです。実行時エラーが発生します:

Run-time Error '1004': Method '_Default' of object 'Range' failed.

4

2 に答える 2

1

列 A、B、および C の行数が同じであると仮定します。

Sub Macro1()
    Set r = Range("A3")
    Set table_array = Range(r, r.End(xlDown)).Resize(, 3)
End Sub
于 2013-10-29T21:30:14.797 に答える
0

列 A:C の最後の行を見つけて、範囲を構築できますか?

Sub Sample()
    Dim ws As Worksheet
    Dim LastRow As Long
    Dim Rng As Range

    '~~> Change this to the relevant sheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
            LastRow = .Range("A:C").Find(What:="*", _
                          After:=.Range("A1"), _
                          Lookat:=xlPart, _
                          LookIn:=xlFormulas, _
                          SearchOrder:=xlByRows, _
                          SearchDirection:=xlPrevious, _
                          MatchCase:=False).Row
        Else
            LastRow = 1
        End If

        If Not LastRow < 3 Then
            Set Rng = .Range("A3:C" & LastRow)

            Debug.Print Rng.Address
        Else
            MsgBox "No Data found beyond A3"
        End If
    End With
End Sub
于 2013-10-29T21:22:41.377 に答える