Ошибка выполнения, переменная не соответствует экспорту, отсутствует ссылка на модуль EXCEL VBA

следующий код устанавливает ячейку B21 в переменную, а затем ссылается на эту переменную для загрузки данных с веб-сайта.

Ошибка, которую я получаю: Код с переменной (сломанный): Ошибка: ошибка времени выполнения «1004»: [Expression.Error] Импорт TICKER не соответствует экспорту. Вы пропустили ссылку на модуль?

Sub DownloadDataV5()
'
' DownloadDataV5 Macro

    Range("B21").Select
    Selection.Copy
' WEBLINK CODE that takes data from cell that combines TICKER & START DATE & ENDING DATE
    Dim WEBLINK As String
    WEBLINK = Sheets("Download").Cells(21, "B").Value
' comment
    ActiveWorkbook.Queries.Add Name: = "Table 0", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents((TICKER)))," & Chr(13) & "" & Chr(10) & "    Data0 = Source{0}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Data0,{{""Buy/Sell"", type text}, {""Transaction Date"", type date}, {""Acceptance DateTime"", type" & _
        " datetime}, {""Issuer Name"", type text}, {""Issuer Trading Symbol"", type text}, {""Reporting Owner Name"", type text}, {""Reporting Owner Relationship"", type text}, {""Transaction Shares"", Int64.Type}, {""Price per Share"", Currency.Type}, {""Total Value"", Currency.Type}, {""Shares Owned Following Transaction"", Int64.Type}, {""Form"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""" & _
        "Changed Type"""
    ActiveWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "MySheet"
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location = ""Table 0"";Extended Properties = """"" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Table 0]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Table_0"
        .Refresh BackgroundQuery:=False
    End With
    Sheets("Download").Select
    ActiveWorkbook.Queries("Table 0").Delete
End Sub


Следующий код РАБОТАЕТ, но бесполезен, поскольку не ссылается на переменную.

Sub DownloadDataV5()
'
' DownloadDataV5 Macro

    Range("B21").Select
    Selection.Copy
' comment
    ActiveWorkbook.Queries.Add Name: = "Table 0", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents((""http://insidertrading.org/index.php?sort_by=acceptance_datetime&asc=&symbol=GOOG&date_from=2016-08-03&date_to=2020-12-16&submit=+GO+&page=1"")))," & Chr(13) & "" & Chr(10) & "    Data0 = Source{0}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Data0,{{""Buy/Sell"", type text}, {""Transaction Date"", type date}, {""Acceptance DateTime"", type" & _
        " datetime}, {""Issuer Name"", type text}, {""Issuer Trading Symbol"", type text}, {""Reporting Owner Name"", type text}, {""Reporting Owner Relationship"", type text}, {""Transaction Shares"", Int64.Type}, {""Price per Share"", Currency.Type}, {""Total Value"", Currency.Type}, {""Shares Owned Following Transaction"", Int64.Type}, {""Form"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""" & _
        "Changed Type"""
    ActiveWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "MySheet"
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location = ""Table 0"";Extended Properties = """"" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Table 0]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Table_0"
        .Refresh BackgroundQuery:=False
    End With
    Sheets("Download").Select
    ActiveWorkbook.Queries("Table 0").Delete
End Sub

Просто нужно супер быстрое решение, чтобы заставить это работать. Буду признателен за всю помощь, которую я могу получить!

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
1 230
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не хватает ссылки на переменную Weblink внутри формулы запроса.

ActiveWorkbook.Queries.Add Name: = "Table 0", Formula:= _
    "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents((" & Chr(34) & WEBLINK & Chr(34) & ")))," & Chr(13) & "" & Chr(10) & "    Data0 = Source{0}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Data0,{{""Buy/Sell"", type text}, {""Transaction Date"", type date}, {""Acceptance DateTime"", type" & _
    " datetime}, {""Issuer Name"", type text}, {""Issuer Trading Symbol"", type text}, {""Reporting Owner Name"", type text}, {""Reporting Owner Relationship"", type text}, {""Transaction Shares"", Int64.Type}, {""Price per Share"", Currency.Type}, {""Total Value"", Currency.Type}, {""Shares Owned Following Transaction"", Int64.Type}, {""Form"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""" & _
    "Changed Type"""

Посмотрите, как я объединил переменную и добавил здесь двойные кавычки:

" & Chr(34) & WEBLINK & Chr(34) & "

Дайте мне знать, если это работает

Большое спасибо Рикардо!

Oooh 18.12.2020 22:03

Другие вопросы по теме