Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Работа с интернетом Добавлено: 11.05.07 11:44  

Автор вопроса:  george | ICQ: 301137589 
Народ, возникла проблема: http://pif.investfunds.ru/quotes/index.phtml

на этом сайте нужно скачивать информацию постоянно по всем фондам автоматизировано через excel (vba). Однако проблема: там все написано на яве. Соответственно, когда я выбираю тот или иной фонд, у меня страница не меняется. Что делать? Заранее благодарен всем.

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 11.05.07 17:47
Загрузить страницу в WebBrowser, и получать значения элементов через объектную модель WB

Ответить

Номер ответа: 2
Автор ответа:
 george



ICQ: 301137589 

Вопросов: 18
Ответов: 31
 Профиль | | #2 Добавлено: 16.05.07 16:09
если не затруднит, то можно пример кода продемонстрировать

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 16.05.07 23:43
(c) - я :)

'========================================================================
' * Заполнение любых элементов на странице, в любой форме, на любом фрейме :)
'   (Работа с элементами)

' WB - Объект WebBrowser
' sFrame - Имя (или индекс) фрейма в котором заполняем поля (vbNullString если нет фрейма)
' sFormName - Имя (или индекс) формы в которой заполняем поля
' pv - Массив структур полей и их значений
' Submit - отправлять ли форму полсе заполнения (По умолчанию False)

Public Sub SubmitForm(WB As WebBrowser, sFrame As String, sFormName, pv() As PostVar, Optional Submit As Boolean = False)
    On Error GoTo e
    Dim i As Byte
    Dim From, obj, o
    
    Call Sleep(200&;)
    
    ClearError
    If Trim$(sFormName) = "" Then sFormName = "#1"
    
    DoEvents: DoEvents
    Call Sleep(200&;)
    
    'Устанавливаем Document у страницы
    
    If Trim$(sFrame) = "" Then 'Если фрейма нет, Document наследуется от WB
        Set o = WB.Document
    Else                       'Если есть...
        'Проверяем имя или индекс указан в качестве фрейма
        If InStr(1, sFrame, "#", 1) > 0 Then    'Если индекс
            Set o = WB.Document.frames(Val(Replace(sFrame, "#", "";))).Document 'Наследуем Document по индексу фрейма
        Else    'Если имя
            Set o = WB.Document.frames.Item(CStr(sFrame)).Document    'Наследуем Document по имени фрейма
        End If
    End If
    
    'Dcoument фрейма (или без него) на этом этапе определён
    'Определяем форму, наследуя объекст o (Он является Document)
 
    If InStr(1, sFormName, "#", 1) > 0 Then
        Set From = o.Forms(Val(Replace(sFormName, "#", "";)))
    Else
        Set From = o.Forms.Item(CStr(sFormName))
    End If
    
    'Заполняем элементы в определённом фрейме и форме
    
    For i = LBound(pv) To UBound(pv)
        If Trim$(pv(i).sPole) <> "" Then
            Set obj = From.elements.Item(CStr(pv(i).sPole))
            obj.Value = pv(i).sVal
        End If
    Next i
    
    Call Sleep(100&;)
    If Submit Then From.Submit  'Сабмитим форму
    Call Sleep(100&;)
    
    Exit Sub
e:
    LastErrorDescription = Err.Description
    LastErrorNumber = Err.Number
End Sub
'========================================================================


Это заполнение, чтение аналогично

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам