Я пытаюсь удалить несколько страниц, которые являются результатом поиска ключевой работы. Я написал этот код, но я получаю сообщение об ошибке при запуске. Ошибка:

Application \-defined or object-defined error. 

Когда я нажимаю «Отладка», он указывает на следующую строку:

With ActiveSheet.QueryTables.Add(Connection:=mystr, Destination:=Range("$A$1"))

Код:

Sub adds()

For x = 1 To 3

Worksheets("sheet1").Select

Worksheets("sheet1").Activate

mystr = "URL;http://apps.webofknowledge.com.ezproxy1.lib.asu.edu/Search.do?product=WOS&SID=1BzJbqm9xDW5Yzj4rhB&search_mode=GeneralSearch&prID=44dc4b3a-138a-4532-8429-772860bea673"

mystr = Cells(x, 1)

Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = x

With ActiveSheet.QueryTables.Add(Connection:=mystr, Destination:=Range("$A$1"))

'.CommandType = 0

.Name = _
        "http://apps.webofknowledge.com.ezproxy1.lib.asu.edu/Search.do?product=WOS&SID=1BzJbqm9xDW5Yzj4rhB&search_mode=GeneralSearch&prID=44dc4b3a-138a-4532-8429-772860bea673"

.FieldNames = True

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

 .BackgroundQuery = True

.RefreshStyle = xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.WebSelectionType = xlEntirePage

.WebFormatting = xlWebFormattingNone

.WebPreFormattedTextToColumns = True

.WebConsecutiveDelimitersAsOne = True

.WebSingleBlockTextImport = False

.WebDisableDateRecognition = False

.WebDisableRedirections = False

.Refresh BackgroundQuery:=False

End With

Next x

End Sub

1 ответ1

1

Вы используете свою переменную mystr в этой строке -

With ActiveSheet.QueryTables.Add(Connection:=mystr, Destination:=Range("$A$1"))

mystr = "URL;http://apps.webofknowledge.com.ezproxy1.lib.asu.edu/Search.do?product=WOS&SID=1BzJbqm9xDW5Yzj4rhB&search_mode=GeneralSearch&prID=44dc4b3a-138a-4532-8429-772860bea673"

Но затем вы переопределяете его перед вызовом в методе querytables.add -

mystr = Cells(x, 1)

Итак, теперь это

With ActiveSheet.QueryTables.Add(Connection:=Cells(x, 1), Destination:=Range("$A$1"))

Если ячейки (x, 1) не имеют правильный формат для метода querytables.add , он не будет знать, что делать.

Вы также, казалось, не объявляли ни одну из своих переменных, поэтому я не уверен, что они есть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .