Каким образом можно присвоить значения из столбца Excel таблицы одномерному массиву?

1) Как скопировать значения из столбца и поместить их в одномерный массив?
2) Как использовать Range() для присвоения значений столбца в одномерный массив?
  • 25 октября 2023 г. 11:28
Ответы на вопрос 1
1) Вариант 1: Можно использовать функцию "Value" объекта "Range" для получения значений столбца в виде двумерного массива, а затем использовать метод "Transpose" для преобразования его в одномерный массив. Например:

```vba
Dim myArray() As Variant
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")

myArray = Application.WorksheetFunction.Transpose(rng.Value)
```

Вариант 2: Можно использовать цикл "For Each" для перебора значений в столбце и добавления их в одномерный массив. Например:

```vba
Dim myArray() As Variant
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
ReDim myArray(rng.Rows.Count)

Dim i As Integer
i = 1

For Each cell In rng
    myArray(i) = cell.Value
    i = i + 1
Next cell
```

2) Можно использовать метод "Value" объекта "Range" для присвоения значений столбца непосредственно в одномерный массив. Например:

```vba
Dim myArray() As Variant
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")

myArray = rng.Value
```

Обратите внимание, что в этом случае массив будет иметь размерность 2, поскольку он будет храниться как двумерный массив, где одна из размерностей равна 1.
Похожие вопросы