VBA在Web字段中输入数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA在Web字段中输入数据相关的知识,希望对你有一定的参考价值。

我正在编写vba来打开中央银行的网站并输入值并提取数据,我通常在邮件站点,巴西银行等处进行此操作...

()中央银行

I can not give the input value via vba in the textbox I've already tried:



Ie.Document.all.Item("valueConverter").Innertext="1"
Ie.Document.getElementById("valueConverter").Value="1"
Ie.Document.getElementById("valueConverter")(0).Value="1"
Ie.Document.getElementByName("valueConverter").Value = "1"

这个网站的元素是这样的:

<Input type = "text" name = "valueConverter" maxlength = "17" size "20" value onkeypress = "return (MascaraMoeda (this, '.', ',', Event)

有谁知道怎么样?

答案

tl;博士

我不能将此标记为副本,因为我没有接受答案,我在哪里发布了类似问题的答案。

不确定协议只是在评论中发布链接并不意味着它会再次被发现。

我的完整答案在这里:Excel Web Query Submit Issues


总结一下:

你可以使用bcb.gov.br Open Data Portal

发送一个JSON回复请求,其转换率来自其汇率 - daily bulletins

通过收到的响应以及其他方法,您可以:

  1. 使用JSON Converter .basa并将响应转换为JSON对象并使用它
  2. 将响应解析为带有正则表达式的字符串以获取值

为简洁起见,我将在这里为您提供第二种方法,您可以查看我对这两种方法的其他答案:

Public Sub GetInfo2()

    Dim strURL As String, strJSON As String, item As Variant, http As Object, json As Object
    Const TARGET_CURRENCY As String = "USD"
    Const START_DATE As String = "06-13-2018"
    Const END_DATE As String = "06-13-2018"

    strURL = "https://olinda.bcb.gov.br/olinda/service/PTAX/version/v1/odata/ExchangeRatePeriod(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)?%40moeda=%27" & TARGET_CURRENCY & "%27&%40dataInicial=%27" & START_DATE & "%27&%40dataFinalCotacao=%27" & END_DATE & "%27&%24format=json"

    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", strURL, False
    http.send
    strJSON = http.responseText
    Dim Matches As Object
    With CreateObject("VBScript.RegExp")
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = """cotacaoCompra"":d{1,}.d{1,}"  'The pattern I really wanted, "(?<=""cotacaoCompra"":)d{1,}.d{1,}", doesn't appear to be supported

        If Not .test(strJSON) Then Exit Sub
        Set Matches = .Execute(strJSON)

        Dim match As Object
        For Each match In Matches
            Debug.Print Replace(match, """cotacaoCompra"":", vbNullString)
        Next
    End With
End Sub

以上是关于VBA在Web字段中输入数据的主要内容,如果未能解决你的问题,请参考以下文章

VBA 防止用户输入表单中出现空字段

使用从 VBA 代码派生的值填充表中的字段

使用 MS Access 和 VBA 更新 Ms Word 文档中的(字段代码:数据库)字段

如何从同一数据库的 VBA 代码中的 MS ACCESS 中提取字段

如何实现动态数据验证,例如作为 Excel VBA 函数?

从片段中获取输入数据