Вариант Base 0 и создание массива из диапазона - PullRequest
0 голосов
/ 01 февраля 2020

Я создаю массивы из диапазона ячеек в Excel. Все работает, массив создан. Проблема в том, что я использую «Option Base 0», и все мои другие массивы (от 0 до x), но массивы, созданные путем чтения диапазона, (от 1 до x + 1). Есть ли способ прочитать массив из диапазона с первым элементом с номером 0?

Пример кода:

Sub ArraysFromRange()
Dim myArray(9) As Integer, myArray2() As Variant
Dim i As Integer
Dim rngTarget As Range, rngTarget2 As Range

Range("A1:M20").Clear
For i = 0 To UBound(myArray)
    myArray(i) = i
Next i
With ThisWorkbook.Worksheets("test")
    Set rngTarget = .Range(.Cells(1, 1), .Cells(UBound(myArray) + 1, 1))
    Set rngTarget2 = .Range(.Cells(1, 2), .Cells(UBound(myArray) + 1, 2))
End With
rngTarget = Application.Transpose(myArray)
myArray2 = Application.Transpose(rngTarget)

End Sub

После этого у меня есть два массива, но первый - (от 0 до 9) и второй (от 1 до 10). Если в коде много массивов, я всегда должен помнить, какой из них должен иметь индекс - 1.

Вопрос второй: есть ли возможность прочитать массив из диапазона как "Boolean" или "Integer" вместо "Вариант"?

1 Ответ

0 голосов
/ 02 февраля 2020

Есть ли способ прочитать массив из диапазона с первым элементом с номером 0?

Нет

есть ли возможность прочитать массив из диапазона как «логическое» или «целое» вместо «вариант»?

Нет

Где SomeRange ссылается на непрерывный диапазон> 1 ячейки, SomeRange.Value возвращает 1-й 2D-массив вариантов. Вот что он делает, вы не можете это изменить.

Как уже отмечали другие, и как предлагают ответы на предложенный дубликат Q, вы всегда можете скопировать значений из этого массива в другой массив другой базы и / или типа, но это другая история.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...