在Excel VBA中select使用单个整数的列

我如何循环使用一个整数作为input的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不起作用)?

使用select案例

 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 

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

尝试:

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