2016-07-08 2 views
0

Я пытаюсь скопировать таблицу с этого сайта: http://www.nzfma.org/data/search.aspx#Copy выпадающий стол из Интернет VBA

нужно выбрать дату как вчерашней даты, а затем скопировать и вставить таблицу в файл.

Мой код ниже:

Sub Test1() 

'open IE, navigate to the website of interest and loop until fully loaded 

Dim NZFMA As Worksheet 
Dim TodayN As Range 
Dim elemCollection As Object 


Set NZFMA = Sheets("NZFMA") 
Set TodayN = NZFMA.Range("B2") 

Set ie = CreateObject("InternetExplorer.Application") 

With ie 
    .Visible = True 
    .navigate "http://www.nzfma.org/data/search.aspx" 

    Do Until Not ie.Busy And ie.ReadyState = 4 
     DoEvents 
    Loop   

    'Select the dates from the drop-down box 
    ie.Document.getElementbyid("ctl00_cphBody_rdpDate_dateInput").Value =  Format(TodayN, "yyyy-mm-dd") 

    'Click the submit button 
    ie.Document.getElementbyid("cphBody_btnSearch").Value = "Search" 

    'Copy the results 
    Set elemCollection = ie.Document.getElementbyid("cphBody_upResults") 

    While ie.ReadyState = 4 
     DoEvents 
    Wend 

End With 

End Sub 

По какой-то причине, мой макрос останавливается после первой getElementbyID линии. Может ли кто-нибудь сообщить, какая часть кода неверна?

+1

любые ошибки? ie.Document.getElementbyid ("cphBody_btnSearch"). Нажмите –

+0

Я пробовал, нет ошибки, но это не работает. –

ответ

0

Хорошо, не проверял это, но что-то, как он должен работать, чтобы изменить первый выпадающий список

Dim elemCollection As HTMLFormElement 
set elemCollection = ie.Document.getElementbyid("cphBody_lstMarket") 
dim teststring as string 

teststring = whatever 

Select Case TestString 
    Case "BKBM" 
     elemCollection.selectedIndex = 1 
    Case "BBRS030" 
     elemCollection.selectedIndex = 2 

и т.д. и т.п.

Чтобы изменить дату, вам нужно что-то вроде

ie.Document.getElementbyid("ctl00_cphBody_rdpDate_dateInput")(0).value = "05/07/2016" 

В любом случае, пойдите с этим и сообщите мне результаты

+0

Привет, спасибо за помощь. Я пробовал код, но он не работает. Это дает мне ошибку автоматизации. –

+0

teststring = что угодно ... нужно изменить что бы то ни было, что вы тестируете. , и вам необходимо расширить корпус. –