首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在get表单中填写数据并获取聚会的名称

在get表单中填写数据并获取聚会的名称
EN

Stack Overflow用户
提问于 2015-11-20 18:48:31
回答 1查看 23关注 0票数 0

有一个网站:Tin number search。我有一个满是锡号(销售税号码)的excel表,我必须填写锡号部分,并将名称填回到工作表中,无论如何,我可以自动化这一点,因为我试图使用机械化,但它回应空白答复。一些用于代码测试的示例(有效) TIN编号为:

27200599589V

27940018928V

27901053455V

EN

回答 1

Stack Overflow用户

发布于 2015-12-10 20:57:10

使用以下代码:

代码语言:javascript
复制
Sub Utility()
    Dim objIE As Object, htmldoc As Object, data, i As Long, lrow As Long
    Dim TinNo As String
    Cells(1, 2).Select
    Range(Selection, Selection.End(xlDown)).Select
    lrow = Selection.Count
    For i = 1 To lrow
        Cells(i, 2) = cleartext(Cells(i, 2).Value)
        On Error Resume Next
    Next

    Set objIE = CreateObject("InternetExplorer.Application")
    With objIE

        .Navigate "http://mahavat.gov.in/Tin_Search/Tinsearch.jsp"

        Do While .readyState <> 4: DoEvents: Loop

        Set TIN = .document.getelementsbyname("tin")
        Set htmldoc = CreateObject("HTMLfile")

        'data = Range("B1:G" & lrow)

        On Error Resume Next

        For i = 1 To lrow

            Set TIN = .document.getelementsbyname("tin")

            Cells(i, 2).Select
            If Not IsError(Cells(i, 2)) Then
                TIN.Item(0).Value = Cells(i, 2)

                .document.getElementById("Submit").Click

                Do While .Busy Or .readyState <> 4: DoEvents: Loop

                htmldoc.body.innerhtml = objIE.document.body.innerhtml

                temp = Trim(Split(htmldoc.getElementsByTagName("Table")(14).innertext, Cells(i, 2))(1))

                If Err.Number <> 0 Then
                    .Navigate "http://mahavat.gov.in/Tin_Search/Tinsearch.jsp"
                    Do While .Busy Or .readyState <> 4: DoEvents: Loop
                    Err.Clear
                    Cells(i, 3) = "Invelid TIN(Shl'd Start with 27,Totl 12 Chr)"
                    Cells(i, 4) = "Invelid TIN"
                Else
                    Cells(i, 3) = Mid(temp, InStrRev(temp, " ") + 1, Len(temp))
                    Cells(i, 4) = Trim(Split(temp, Cells(i, 3))(0))
                End If
            End If
       Next

    End With
End Sub
Function cleartext(inputstring As String) As String
    Dim onlynumbers As String
    onlynumbers = OnlyNums(inputstring)
    'MsgBox onlynumbers
    onlynumbers = Mid(onlynumbers, InStr(1, onlynumbers, "27"), 11) & "V"
    'MsgBox onlynumbers
    If Len(onlynumbers) < 12 Then
        cleartext = CVErr(xlErrValue)
    End If
    cleartext = onlynumbers
End Function
Function OnlyNums(sWord As String) As String
    Dim sChar As String
    Dim x As Integer
    Dim sTemp As String

    sTemp = ""
    For x = 1 To Len(sWord)
        sChar = Mid(sWord, x, 1)
        If Asc(sChar) >= 48 And _
          Asc(sChar) <= 57 Then
            sTemp = sTemp & sChar
        End If
    Next
    OnlyNums = sTemp
End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33824752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档