В меру моих знаний, нет никакого способа, чтобы добиться того, что вы пытаетесь сделать напрямую, потому что oExcelRangeArray & i
не будет оцениваться как отдельный шаг до присваивание переменной происходит.
В моем уме у вас есть два варианта:
Присвоить каждой переменной в отдельности,
oExcelRangeArray1 = x1.Range("A1:Z400").Value
oExcelRangeArray2 = x1.Range("A1:Z400").Value
oExcelRangeArray3 = x1.Range("A1:Z400").Value
oExcelRangeArray4 = x1.Range("A1:Z400").Value
Или добавьте каждый массив в список и итерацию через него,
Dim oExcelRangeArrayList As New List(Of Object)
oExcelRangeArrayList.Add(oExcelRangeArray1)
oExcelRangeArrayList.Add(oExcelRangeArray2)
oExcelRangeArrayList.Add(oExcelRangeArray3)
oExcelRangeArrayList.Add(oExcelRangeArray4)
For i As Integer = 0 To 3
oExcelRangeArrayList(i) = x1.Range("A1:Z400").Value
Next
[Примечание: W ритинг этого от руки без проверки, код может быть не дословным; надеюсь, вы получите концепцию. Исправления исправлены.]
Зачем нужен двухдиапазонный массив для хранения одного значения типа 'xl.Range (« A1: Z400 »). Значение« –
»Для строк и столбцов моей таблицы – BobyCode