Member 12734412 Ответов: 3

Как устранить "ошибку времени выполнения 424: требуется объект"?


когда я пытаюсь запустить программу, она показывает ошибку времени выполнения.

Что я уже пробовал:

Sub Macro1()
For i = 1 To 255
Worksheets("sheet1").Select
Worksheets("sheet1").Activate
mystr = "http://www.medifee.com/dc/243-rushabh-diagnostic-centre/"
mystr = Cells(i, 1)
Worksheets.Add(After:=Worksheets(Worksheet.Count)).Name = i
ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:= _
        mystr, Destination:= _
        Range("$A$1"))
        .Name = "243-rushabh-diagnostic-center"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlAllTables
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With



Next
End Sub

3 Ответов

Рейтинг:
2

Patrice T

Используйте debgger и выполняйте свой макрос построчно и проверяйте переменные на наличие изменений после каждой строки.

mystr = "http://www.medifee.com/dc/243-rushabh-diagnostic-centre/"
mystr = Cells(i, 1)

Вторая линия убивает первую.
Проверьте, что QueryTables не потерпите неудачу из-за этого.


Рейтинг:
1

OriginalGriff

Мы не можем сказать - у нас нет доступа к вашим данным, чтобы проверить код и разработать его для вас.
Так что все будет зависеть от тебя.
Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем этого сделать для вас - пришло время освоить новый (и очень, очень полезный) навык: отладку!

Взгляните на них, они могут помочь вам начать работу:
MS Excel 2013: введение в отладку VBA[^]
Способы пошагового выполнения кода в VBA[^]


Рейтинг:
0

Member 14143637

Option Explicit

Dim NextBlink As String
Dim blinkingcells As Range
Sub StartBlink()
    If blinkingcells Is Nothing Then
    Set blinkingcells = Selection
    Call Blinking
    Else
    Set blinkingcells = Union(blinkingcells, Selection)
    End If
End Sub
Sub Blinking()
    Dim cell As Range
    For Each cell In blinkingcells
        If cell.Interior.ColorIndex = 4 Then
            cell.Interior.ColorIndex = 0
        Else
        cell.Interior.ColorIndex = 4
        End If
    Next
    NextBlink = Now + TimeSerial(0, 0, 0.6)
    Application.OnTime NextBlink, "Blinking", True
End Sub


Richard Deeming

Абсолютно ничего общего с этим вопросом!