在Excel VBA中使用单个整数选择列

时间:2013-05-16 20:05:36

标签: excel vba

如何使用单个整数作为输入循环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的任何值(假设从1到1000这样手动IF-ELSE不起作用)?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果您需要考虑多个值并且案例选择/ if / else不合适,请尝试范围.Offset方法。

尝试:

x = ThisWorkbook.Sheets("Sheet").Range("A3:B253").Offset(0,MyInteger)
y = ThisWorkbook.Sheets("Sheet").Range("A3:B253").Offset(0,MyInteger+1)