WEBBROWSER - RUN-TIME ERROR 91
bom dia a todos,
tenho um aplicativo que tenta manipular uma página da internet, através do controle WebBrowser. Contudo, em determinado momente, ocorre o um erro: Run-time Error 91 - Object variable ou With block variable not set.
Funciona assim: eu preciso alterar a seleção de um ComboBox da página, e o código é o seguinte:
[th]
na linha [ô] Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô] [ô] ocorre o erro.
Já pesquisei em muitos lugares, alguns falam de não ter setado corretamente o objeto, mas não sei o que possa estar ocorrendo. Preciso de ajuda.
Abraços!
tenho um aplicativo que tenta manipular uma página da internet, através do controle WebBrowser. Contudo, em determinado momente, ocorre o um erro: Run-time Error 91 - Object variable ou With block variable not set.
Funciona assim: eu preciso alterar a seleção de um ComboBox da página, e o código é o seguinte:
Código | [/th]
Public Pagina as New HTMLDocument Private Sub Form_Activate() WebBrowser1.Navigate2 [Ô]http://www2.rio.rj.gov.br/smf/siam/darmiptu.asp[Ô] Set Pagina = WebBrowser1.Document End Sub Private Sub Command1_Click() If WebBrowser1.ReadyState = READYSTATE_COMPLETE Then Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô] Pagina.getElementById([Ô]TDCentro[Ô]).innerText() = [Ô]00[Ô] End If |
na linha [ô] Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô] [ô] ocorre o erro.
Já pesquisei em muitos lugares, alguns falam de não ter setado corretamente o objeto, mas não sei o que possa estar ocorrendo. Preciso de ajuda.
Abraços!
colega nesta linha
WebBrowser.ReadyState
não seria
WebBrowser[txt-color=#e80000]1[/txt-color].ReadyState
WebBrowser.ReadyState
não seria
WebBrowser[txt-color=#e80000]1[/txt-color].ReadyState
Marcelo, é isso mesmo.
Foi um erro do tópico, e não da linha no programa!
já fiz a correção...
Obrigado!
Foi um erro do tópico, e não da linha no programa!
já fiz a correção...
Obrigado!
tente o seguinte
Private Sub Command1_Click()
WebBrowser1.Navigate2 [Ô]http://www2.rio.rj.gov.br/smf/siam/darmiptu.asp[Ô]
Set Pagina = WebBrowser1.Document
If Pagina.ReadyState = READYSTATE_COMPLETE Then
Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô]
Pagina.getElementById([Ô]TDCentro[Ô]).innerText() = [Ô]00[Ô]
End If
Set Pagina = Nothing
End Sub
Marcelo, o erro continua.
Um detalhe que pude perceber:
Se eu executo o WebBrowser em uma página local, salva da internet, com a mesma estrutura HTML, ele gera o erro, mas quando eu re-executo no debug ele ignora e faz a seleção do ComboBox.
Agora, se eu tento re-executar no debug na página da internet, o erro persiste...
Um detalhe que pude perceber:
Se eu executo o WebBrowser em uma página local, salva da internet, com a mesma estrutura HTML, ele gera o erro, mas quando eu re-executo no debug ele ignora e faz a seleção do ComboBox.
Agora, se eu tento re-executar no debug na página da internet, o erro persiste...
vamos tentar sómais uma coisinha
Private Sub Command1_Click()
Set Pagina = WebBrowser1
Pagina.Navigate2 [Ô]http://www2.rio.rj.gov.br/smf/siam/darmiptu.asp[Ô]
If Pagina.ReadyState = READYSTATE_COMPLETE Then
Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô]
Pagina.getElementById([Ô]TDCentro[Ô]).innerText() = [Ô]00[Ô]
End If
Set Pagina = Nothing
End Sub
Fiz o seguinte
o erro parou, mas a alteração do ComboBox só é visÃvel se eu der uma pausa no código, com um MsgBox
Private Sub Command1_Click()
Dim Pagina As HTMLDocument
WebBrowser1.Navigate2 [Ô]http://www2.rio.rj.gov.br/smf/siam/darmiptu.asp[Ô]
Set Pagina = WebBrowser1.Document
Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô]
Pagina.getElementById([Ô]TDCentro[Ô]).innerText() = [Ô]01[Ô]
Set Pagina = Nothing
End Sub
o erro parou, mas a alteração do ComboBox só é visÃvel se eu der uma pausa no código, com um MsgBox
Private Sub Command1_Click()
Dim Pagina As HTMLDocument
WebBrowser1.Navigate2 [Ô]http://www2.rio.rj.gov.br/smf/siam/darmiptu.asp[Ô]
Set Pagina = WebBrowser1.Document
Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô]
MsgBox [Ô][Ô]
Pagina.getElementById([Ô]TDCentro[Ô]).innerText() = [Ô]01[Ô]
MsgBox [Ô][Ô]
Set Pagina = Nothing
End Sub
Marcelo,
coloquei um evento Stop no WebBrowser antes de iniciar a manipulação, e deu certo:
Fiz pra uma outra página, e também deu certo. Só que nesta outra página, no código HTML dela, quando o ComboBox é alterado executa esse evento:
Queria saber se existe uma forma de chamar essa função em JavaScript pelo WebBrowser.
Grato!
coloquei um evento Stop no WebBrowser antes de iniciar a manipulação, e deu certo:
Private Sub Command1_Click()
Dim Pagina As HTMLDocument
WebBrowser1.Navigate2 [Ô]http://www2.rio.rj.gov.br/smf/siam/darmiptu.asp[Ô]
Set Pagina = WebBrowser1.Document
WebBrowser1.Stop
Pagina.getElementById([Ô]ano[Ô]).children(1).setAttribute [Ô]Selected[Ô], [Ô]Selected[Ô], [Ô][Ô]
Pagina.getElementById([Ô]TDCentro[Ô]).innerText() = [Ô]01[Ô]
Set Pagina = Nothing
End Sub
Fiz pra uma outra página, e também deu certo. Só que nesta outra página, no código HTML dela, quando o ComboBox é alterado executa esse evento:
<select name=[Ô]tpPesquisa[Ô] onchange=[Ô]javascript:marcaCpfCnpj(this.value);[Ô] tabindex=[Ô]1[Ô]>
Queria saber se existe uma forma de chamar essa função em JavaScript pelo WebBrowser.
Grato!
Experimenta dá um PAUSE ao invés do MESSAGE.
Declarations
Code
Declarations
Private Declare Sub Sleep Lib [Ô]kernel32[Ô] (ByVal dwMilliseconds As Long)
Code
Sleep 300
Tecla,
o evento Stop do controle WebBrowser funcionou perfeitamente.
Meu problema agora é fazer com que a função JavaScript seja executada, nesse evento da tag HTML:
o evento Stop do controle WebBrowser funcionou perfeitamente.
Meu problema agora é fazer com que a função JavaScript seja executada, nesse evento da tag HTML:
<select name=[Ô]tpPesquisa[Ô] onchange=[Ô]javascript:marcaCpfCnpj(this.value);[Ô] tabindex=[Ô]1[Ô]>
Tópico encerrado , respostas não são mais permitidas