1

単一の整数を入力として使用してExcel列をループするにはどうすればよいですか

myInteger = 1

then

X = ThisWorkbook.Sheets("Sheet").Range("B3:B253")
Y = ThisWorkbook.Sheets("Sheet").Range("C3:C253")

and if

myInteger = 2

then

X = ThisWorkbook.Sheets("Sheet").Range("D3:D253")
Y = ThisWorkbook.Sheets("Sheet").Range("E3:E253")

など、myInteger の任意の値 (手動の IF-ELSE が機能しないように 1 から 1000 までとしましょう)?

4

2 に答える 2

2

セレクトケースの使用

Sub test()

myInteger = 1
    Select Case myInteger

    Case 1
        X = ThisWorkbook.Sheets("Sheet").Range("B3:B253")
        Y = ThisWorkbook.Sheets("Sheet").Range("C3:C253")

    Case 2


        X = ThisWorkbook.Sheets("Sheet").Range("D3:D253")
        Y = ThisWorkbook.Sheets("Sheet").Range("E3:E253")

    Case Else

        X = ThisWorkbook.Sheets("Sheet").Range("D3:D253")
        Y = ThisWorkbook.Sheets("Sheet").Range("E3:E253")
    End Select
End Sub


If...Else..を使用して

Sub test()

    myInteger = 1
    If myInteger = 1 Then
        X = ThisWorkbook.Sheets("Sheet").Range("B3:B253")
        Y = ThisWorkbook.Sheets("Sheet").Range("C3:C253")
    ElseIf myInteger = 2 Then


        X = ThisWorkbook.Sheets("Sheet").Range("D3:D253")
        Y = ThisWorkbook.Sheets("Sheet").Range("E3:E253")

    Else

        X = ThisWorkbook.Sheets("Sheet").Range("D3:D253")
        Y = ThisWorkbook.Sheets("Sheet").Range("E3:E253")
    End If
End Sub
于 2013-05-16T20:10:50.697 に答える
0

多くの値を考慮する必要があり、select/if/else のケースが適切でない場合は、range.Offsetメソッドを試してください。

試す:

x = ThisWorkbook.Sheets("Sheet").Range("A3:B253").Offset(0,MyInteger)
y = ThisWorkbook.Sheets("Sheet").Range("A3:B253").Offset(0,MyInteger+1)
于 2013-05-16T20:11:49.370 に答える