Как заполнить массив пользовательских типов из данных листа - PullRequest
0 голосов
/ 12 апреля 2019

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

Type Donation
    NBID As Integer
    Amount As Single
    DonationDate As Date
    TrackingCode As String
End Type

Public dons() as Donation

Sub init()
    Dim i As Integer
    Dim tmpDons() As Variant
    Dim donRows as Integer

    tmpDons = Sheets("Appeal Dons").UsedRange.Value2
    donRows = UBound(tmpDons)
    ReDim dons(donRows - 2)

    For i = 2 To donRows
        dons(i - 2).NBID = tmpDons(i, 1)
        dons(i - 2).Amount = tmpDons(i, 2)
        dons(i - 2).TrackingCode = tmpDons(i, 3)
        dons(i - 2).DonationDate = tmpDons(i, 4)
    Next
End Sub

1 Ответ

0 голосов
/ 12 апреля 2019

Попробуйте:

Option Explicit

Sub test()

    Dim arr As Variant
    Dim i As Long

    With ThisWorkbook.Worksheets("Sheet1")
        'Import to array the used range
        arr = .UsedRange

        'Loop from L to U arr bound
        For i = LBound(arr) To UBound(arr)
            'Code
        Next i

    End With

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