I declared "j" as a public variable but not sure if my declare statement is correct or if I have declared it in the correct part of the code. I have included all the code and were each is stored and highlighted were I am using my variable. Thanks.

This part of the code is stored under "Microsoft Excel Objects" (This is were I get a compile error).
Option Explicit

Private pWinHttpRequest As WinHttp.WinHttpRequest

Friend Function GetHistoricalData(Symbol As String, _
    Optional FromDate As Date = #12:00:00 AM#, _
    Optional ToDate As Date = #12:00:00 AM#, _
    Optional Interval As String = "Daily") As ADODB.Recordset
    
    Dim URL As String, ResponseText As String
    Dim pRecordSet As ADODB.Recordset
    Dim DateString As String, IntervalString As String
    Dim RTS() As String, RTFI
    Dim x As Long

    If FromDate <> #12:00:00 AM# Or ToDate <> #12:00:00 AM# Then
        If FromDate = 0 And ToDate > 0 Then
            FromDate = #1/1/1900#
        ElseIf FromDate > 0 And ToDate = 0 Then
            ToDate = Date
        End If
        DateString = "&a=" & Format(Month(FromDate) - 1, "00") & "&b=" _
                        & Format(FromDate, "DD") & "&c=" & Format(FromDate, "YYYY") & _
                     "&d=" & Format(Month(ToDate) - 1, "00") & "&e=" _
                        & Format(ToDate, "DD") & "&f=" & Format(ToDate, "YYYY")
    End If

    
    URL = "http://ichart.finance.yahoo.com/table.csv?s=" & Symbol & DateString & IntervalString
    
    pWinHttpRequest.Open "GET", URL, False
    pWinHttpRequest.Send
     
    ResponseText = pWinHttpRequest.ResponseText
    If InStr(ResponseText, "<title>Yahoo! - 404 Not Found</title>") Then
            Err.Raise 10002, "HistoricalStockDataFromYahoo.GetHistoricalData", _
            "Line " & j & ": Invalid Search Parameters."
    End If
    
    Set pRecordSet = New ADODB.Recordset
    
    pRecordSet.Fields.Append "Date", adDBDate
    pRecordSet.Fields.Append "Close", adCurrency
    pRecordSet.Open
    
    RTS = Split(ResponseText, Chr(10))
    
    For x = LBound(RTS) + 1 To UBound(RTS)
        If RTS(x) <> "" Then
            RTFI = Split(RTS(x), ",")
            pRecordSet.AddNew Array("Date", "Close"), Array(RTFI(0), RTFI(4))
            pRecordSet.Update
        End If
    Next x

    pRecordSet.MoveFirst
    Set GetHistoricalData = pRecordSet
End Function

Private Sub Class_Initialize()
    On Error Resume Next
    Set pWinHttpRequest = New WinHttpRequest
    If pWinHttpRequest Is Nothing Then
        Err.Raise 10000, "HistoricalStockDataFromYahoo.Class_Initialize", _
        "Could not create WinHttp.WinHttpRequest object..."
    End If
End Sub
This part of the code is stored under "Class Module"
Option Explicit
Public j As Integer


Private Sub CommandButton1_Click()

    Application.ScreenUpdating = False
    
    Dim HSDFY As HistoricalStockDataFromYahoo
    Dim rs As ADODB.Recordset
    Dim i As Long
    Dim lastrow As Integer

    On Error GoTo Err_CommandButton1_Click
    
    Range("C2:D" & Rows.Count).ClearContents

    i = 2

    lastrow = Range("A" & Rows.Count).End(xlUp).Row

    For j = 2 To lastrow
        Set HSDFY = New HistoricalStockDataFromYahoo
        Set rs = HSDFY.GetHistoricalData(Cells(j, 1).Value, Cells(j, 2).Value, Cells(j, 2).Value)
        rs.MoveFirst
        Cells(j, 3).CopyFromRecordset rs
        i = i + 1
    Next j

Exit Sub

Err_CommandButton1_Click:
    Select Case Err.Number
        Case 10000
            MsgBox Err.Description
            j = j + 1
            i = i + 1
        Case 10001
            'invalid interval
            MsgBox Err.Description
            j = j + 1
            i = i + 1
        Case 10002
            'query failed
            MsgBox Err.Description
            j = j + 1
            i = i + 1
       Case Else
            MsgBox "Invalid Search Parameters or other error.  No data was returned."
            j = j + 1
            i = i + 1
    End Select
    Resume

    Application.ScreenUpdating = True
    
End Sub