Excel VBA - Динамический диапазон - PullRequest
0 голосов
/ 22 января 2019

У меня есть список чисел на листе, который нужно добавить в массив, но в пакетном режиме.Итак, у меня есть список из 150 или около того чисел в Списке, которые нужно добавить в массив, но партиями по 5. Каждый новый пакет будет использоваться для запроса базы данных SQL.

Список может изменить длину ине будет четным, может быть 20 может быть 541.

Редактировать: Кажется, это делает то, что мне нужно, но я уверен, что есть лучшее решение.

Dim i As Integer

Sheets("List").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row

Range("a1").Select


For i = 1 To lRow

    begrng = ActiveCell.Address
    ActiveCell.Offset(4, 0).Select
    endrng = ActiveCell.Address


    Set rng = Range(begrng, endrng)


    For Each cell In rng
        If Not IsEmpty(cell) Then
        mystring = mystring & "','" & cell.Value
        End If
    Next cell

    mystring = Right(mystring, Len(mystring) - 2)
    mystring = ""

Next

End Sub

1 Ответ

0 голосов
/ 22 января 2019

Попробуйте,

Dim i As Long, lRow As Long, mystring As String, ayes As Variant

With Worksheets("List")

    lRow = .Cells(.Rows.Count, "A").End(xlUp).Row

    For i = 1 To lRow Step 5

        ayes = Application.Transpose(.Range(.Cells(i, "A"), .Cells(i + 4, "A")).Value2)

        mystring = Application.Trim(Join(ayes, Space(1)))
        ayes = Split(mystring, Space(1))
        mystring = Chr(39) & Join(ayes, "','") & Chr(39)

        Debug.Print mystring

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