Динамически создавать и назначать значения для переменных?

StackOverflow https://stackoverflow.com//questions/22077124

Вопрос

У меня есть 264 столбцов данных, которые мне нужно неотразительно настроить каждый диапазон для хранения значения в переменной ... поэтому я думаю, что и:

For i = 1 To 5

If i = 1 Then
    search1 = Sheets(tables).Range(Cells(2, i), Cells(200, i))
ElseIf i = 2 Then
    search2 = Sheets(tables).Range(Cells(2, i), Cells(200, i))
ElseIf i = 3 Then
    search3 = Sheets(tables).Range(Cells(2, i), Cells(200, i))
ElseIf i = 4 Then
    search4 = Sheets(tables).Range(Cells(2, i), Cells(200, i))
ElseIf i = 5 Then
    search5 = Sheets(tables).Range(Cells(2, i), Cells(200, i))
End if

Next
.

(у меня есть 264 я, так что я думаю, что это не нужно делать это ...) Как я могу это сделать ?

Я пробовал:

search & i = Sheets(tables).Range(Cells(2, i), Cells(200, i))
"Compiler error, expected expression"
search(i) = Sheets(tables).Range(Cells(2,i),Cells(200,i))
"Sub or Function not Defined"
.

и до сих пор не работают.

Это возможно?У вас, ребята, есть какие-нибудь намеки?трюки для этого?

Пожалуйста, скажите мне любые мысли, я дам как можно больше информации, чтобы иметь хотя бы отличное решение здесь.

Спасибо.

Это было полезно?

Решение

попробуйте этот код:

Sub test()
    Dim i As Integer, n As Integer
    Dim tables As String
    Dim search() As Variant

    n = 264
    ReDim search(1 To n)

    tables = "Sheet1"

    With ThisWorkbook.Sheets(tables)
        For i = 1 To n
            search(i) = .Range(.Cells(2, i), .Cells(200, i)).Value
        Next
    End With

End Sub
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top