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 的任何值(假设从 1 到 1000,这样手动 IF-ELSE 不起作用)?

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

如果您需要考虑许多值并且 case 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 回答