Dim As Dictionary. Compile Error: User-defined typ

2020-02-12 04:08发布

问题:

Can you please assist with this problem? Whenever I run this macro, it stops at:

Dim authResult As Dictionary

With an error message of: Compile error: User-defined type not defined.

I have not used the dictionary type before and I am trying to re-use this code from a sample macro.

The aim of this script is to use excel to make rest calls to a website so that I can download historic data. I am currently stuck at the login section.

Sub Login()

    Dim userName As String
    Dim password As String
    Dim apiKey As String

    userName = "username"
    password = "password"
    apiKey = "key123"

    'activityTextbox.Text = ""
    'clearData

    Dim authResult As Dictionary
    Set authResult = restClient.authenticateAccount(userName, password, apiKey)
    If Not authResult Is Nothing Then
        'appendActivity "Connected"
        ' Configure Excel to pull streaming updates as often as possible
        Application.RTD.ThrottleInterval = 0
        ' Uncomment for real-time prices - this is very CPU intensive
        ' Buffer interval defaults to 500ms
        'Application.WorksheetFunction.RTD "IG.api.excel.RTD.IGApiRTDServer", "", "bufferInterval", "0"
        ' Set manual refresh to true from very remote locations
        ' Application.WorksheetFunction.RTD "IG.api.excel.RTD.IGApiRTDServer", "", "manualRefresh", "true"
        ' This will require manually calling refresh to update lighstreamer subscriptions, i.e.
        ' Application.WorksheetFunction.RTD "IG.api.excel.RTD.IGApiRTDServer", "", "refresh"
        Dim maxPriceRequestsPerSecond As Double
        maxPriceRequestsPerSecond = 0  ' all available updates
        If restClient.streamingAuthentication(maxPriceRequestsPerSecond) Then
            m_loggedIn = True
            'populateWatchlists
            'populateAccounts
            'manualStreamingRefresh
        'Else
         '   appendActivity "Lightstreamer connection failure"
        End If
    Else
        MsgBox "Authentication failed"
    End If

End Sub

Thanks in advance. Cheers, Joe

回答1:

Add a reference to Microsoft Scripting Runtime as @YowE3k said:

In the VBA Editor:

Tools -> References

Find Microsoft Scripting Runtime

Check it

Click okay



标签: excel vba rest