Excel vba宏连接到特定网页 - 搜索和检索数据

时间:2014-10-10 07:31:48

标签: vba excel-vba excel

我有列,比如说A列包含1500行,每行都有一个字符串(十六进制编码)。我需要的是连接到特定的网站搜索粘贴字符串,按解码,复制结果并将其粘贴回B列。

任何帮助都会有很大的帮助。我是新来的。

示例:

A栏中的字符串:5468616e6b732061206c6f7420696e20616476616e6365

要搜索的网站:http://encodertool.com/hexadecimal

  1. 从Excel单元格复制并粘贴到标签页(标题下):输入要解码的十六进制内容
  2. 然后点击DECODE
  3. 然后从解码结果中复制
  4. 最后在我的Excel工作表中粘贴回ColumnB。
  5. 期待回答。

    提前感谢一百万。

2 个答案:

答案 0 :(得分:1)

您是否正在将此作为自动化浏览器的练习?好像你可以直接在VBA中轻松地做到这一点

来自:http://bytes.com/topic/access/answers/874752-convert-hex-string

Sub tester()
    Debug.Print fConvertHexToString( _
             "5468616e6b732061206c6f7420696e20616476616e6365")
End Sub



Public Function fConvertHexToString(strHexString As String) As String
Dim intLenOfString As Integer
Dim intCounter As Integer
Dim strBuild As String

'Hex String must have a valid length, and it must be an even length
If Len(strHexString) = 0 Or Len(strHexString) Mod 2 <> 0 Then Exit Function

intLenOfString = Len(strHexString)

For intCounter = 1 To Len(strHexString)
  If intCounter Mod 2 <> 0 Then     'need Hex pairs
    'Retrieve the Value of the Hex Pair, then Convert to a Character,
    'then Append to a Base String
    strBuild = strBuild & Chr$(Val("&H" & Mid$(strHexString, intCounter, 2)))
  End If
Next
fConvertHexToString = strBuild
End Function

答案 1 :(得分:0)

像这样的东西。我刚刚进行了一次模拟测试,它确实有效。试试看。您可以根据需要修改代码。这是一个简单的代码。代码也可以增强。但这符合你的要求

       Dim ie As InternetExplorer
        Dim doc As HTMLDocument

        Sub start()

        Dim ran As Range
        Dim cel As Excel.Range

        Set ran = Worksheets("Sheet1").Range("A1:A4") 'Change Your input range here

            For Each cel In ran
                If cel.Value <> Empty Then
                    Set ie = New InternetExplorerMedium 'open iE
                    ie.navigate ("http://encodertool.com/hexadecimal") 'Navigate to IE
                    ie.Visible = True
                        'Wait untill IE is loaded
                        Do
                        ' Wait till the Browser is loaded
                        Loop Until ie.readyState = READYSTATE_COMPLETE
                    Set doc = ie.document
                    doc.getElementById("input_4").innerText = cel.Value ' Enter input value
                    test ' Click button
                    cel.Offset(0, 1).Value = doc.getElementById("output_4").innerText ' save Output value
                End If
                ie.Quit
                Next cel

            End Sub


    'Click the Decode button
    Sub test()

            Set cl_button= doc.getElementsByTagName("a")

            For Each one In cl_button
            If one.getAttribute("onclick") = "ajaxfct('fcts.php','4')" Then
            one.Click
            Exit For
            End If
            Next one

    End Sub

在运行代码之前,添加对HTML对象库的引用。互联网控制。同时更改输入范围。我把它设置为A1:A4。无论如何改变它。确保范围中没有空白单元格。另外,如果您不希望浏览器显示设置

ie.visible = false

这是一种做法。这是很简单有效的方法