Web Scraping with Queries выдает «Ошибка времени выполнения» 438: «Объект не поддерживает это свойство или метод» - PullRequest
0 голосов
/ 01 ноября 2018

Я записал макрос. Он работает на компьютере, на котором я его записал (Windows 10, Office 365 Pro)

Мне нужна рабочая тетрадь для передачи. Когда я отправляю рабочую книгу другим, они получают:

Ошибка времени выполнения '438': объект не поддерживает это свойство или метод

Я пробовал это в 2010 году и на другой копии 365. Оба возвращают ошибку.

Макрос должен получать информацию о партнерах для команд MLB с веб-сайта: https://en.wikipedia.org/wiki/South_Atlantic_League

Вот мой код:

    ActiveWorkbook.Queries.Add Name:="Current teams[edit]", Formula:= _
    "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents(""https://en.wikipedia.org/wiki/South_Atlantic_League""))," & Chr(13) & "" & Chr(10) & "    Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Data1,{{""Division"", type text}, {""Team"", type text}, {""MLB Affiliation"", type text}, {""City"", type text}, {""Stadium"", type text}, {""Capacity"", type number}})," & Chr(13) & "" & Chr(10) & "    #""Reordere" & _
    "d Columns"" = Table.ReorderColumns(#""Changed Type"",{""MLB Affiliation"", ""Team"", ""Division"", ""City"", ""Stadium"", ""Capacity""})," & Chr(13) & "" & Chr(10) & "    #""Removed Columns"" = Table.RemoveColumns(#""Reordered Columns"",{""Division"", ""City"", ""Stadium"", ""Capacity""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Removed Columns"""
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
    "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Current teams[edit]"";Extended Properties=""""" _
    , Destination:=Range("$O$9")).QueryTable
    .CommandType = xlCmdSql
    .CommandText = Array("SELECT * FROM [Current teams[edit]]]")
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Current_teams_edit"
    .Refresh BackgroundQuery:=False
End With
Range("Current_teams_edit").Select
Selection.Copy
Range("A35").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-9
Range("M2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],R34C[-12]:R49C[-10], 2, FALSE)"
Range("M3").Select
ActiveWindow.SmallScroll Down:=-6
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M31"), Type:=xlFillDefault
Range("M2:M31").Select
Columns("O:O").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll Down:=-18
Range("M2:M31").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
ActiveWindow.SmallScroll Down:=6
Range("A34:C49").Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-24
Range("A1").Select

ActiveWorkbook.Queries("Current teams[edit]").Delete

Эта строка выделена:

ActiveWorkbook.Queries.Add Name:="Current teams[edit]", Formula:= _
    "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents(""https://en.wikipedia.org/wiki/South_Atlantic_League""))," & Chr(13) & "" & Chr(10) & "    Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & "    #""Changed Type"" = Table.TransformColumnTypes(Data1,{{""Division"", type text}, {""Team"", type text}, {""MLB Affiliation"", type text}, {""City"", type text}, {""Stadium"", type text}, {""Capacity"", type number}})," & Chr(13) & "" & Chr(10) & "    #""Reordere" & _
    "d Columns"" = Table.ReorderColumns(#""Changed Type"",{""MLB Affiliation"", ""Team"", ""Division"", ""City"", ""Stadium"", ""Capacity""})," & Chr(13) & "" & Chr(10) & "    #""Removed Columns"" = Table.RemoveColumns(#""Reordered Columns"",{""Division"", ""City"", ""Stadium"", ""Capacity""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Removed Columns"""
...