无法通过 excel vba 自动填充网站标签
Unable to autofill tabs of website through excel vba
我已经成功创建了以下代码,但我无法自动填充图像中标有红色箭头的字段,因为在 HTML 代码中没有可用的 ID。
图像中显示的所有选项卡都没有 ID。
填充这些应该用什么编码?
Sub TDS_Autofill()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://onlineservices.tin.egov-nsdl.com/etaxnew/tdsnontds.jsp"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Set doc = IE.document
doc.parentWindow.execScript "sendRequest(281)", "JavaScript"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
If ThisWorkbook.Sheets("Challan AutoFill").Range("m2").Value = "Company"
Then
doc.getElementById("0020").Click
ElseIf ThisWorkbook.Sheets("Challan AutoFill").Range("m2").Value = "Non
Company" Then
doc.getElementById("0021").Click
End If
If ThisWorkbook.Sheets("Challan AutoFill").Range("o2").Value = "(200)
TDS/TCS Payable by Taxpayer" Then
doc.getElementById("200").Click
ElseIf ThisWorkbook.Sheets("Challan AutoFill").Range("o2").Value = "(400)
TDS/TCS Regular Assessment" Then
doc.getElementById("400").Click
End If
IE.document.querySelector("select.form-control").selectedIndex =
ThisWorkbook.Sheets("Challan AutoFill").Range("r2").Value
doc.getElementById("NetBanking").Click
doc.getElementById("NetBank_Name_c").Value = ThisWorkbook.Sheets("Challan
AutoFill").Range("t2").Value
End Sub```
您可以使用 getElementsByTag("input") returns 您可以通过索引访问的组件集合,然后将它们的值设置为您需要的值。
doc.getElementsByTagName("input")(0).value = "My value"
您可以通过 doc.getElementsByName
使用输入的名称获取输入。它 returns 文档中具有指定名称的所有元素的集合。然后你应该找出你想要的元素的索引号。
例如,您可以使用以下代码设置"Tax Deduction Account No"的值:
doc.getElementsByName("TAN")(1).Value = "abc"
对于其他输入,您可以使用相同的方法。我通过设置一些值进行了测试,您可以看到结果:
我已经成功创建了以下代码,但我无法自动填充图像中标有红色箭头的字段,因为在 HTML 代码中没有可用的 ID。
图像中显示的所有选项卡都没有 ID。
填充这些应该用什么编码?
Sub TDS_Autofill()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://onlineservices.tin.egov-nsdl.com/etaxnew/tdsnontds.jsp"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Set doc = IE.document
doc.parentWindow.execScript "sendRequest(281)", "JavaScript"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
If ThisWorkbook.Sheets("Challan AutoFill").Range("m2").Value = "Company"
Then
doc.getElementById("0020").Click
ElseIf ThisWorkbook.Sheets("Challan AutoFill").Range("m2").Value = "Non
Company" Then
doc.getElementById("0021").Click
End If
If ThisWorkbook.Sheets("Challan AutoFill").Range("o2").Value = "(200)
TDS/TCS Payable by Taxpayer" Then
doc.getElementById("200").Click
ElseIf ThisWorkbook.Sheets("Challan AutoFill").Range("o2").Value = "(400)
TDS/TCS Regular Assessment" Then
doc.getElementById("400").Click
End If
IE.document.querySelector("select.form-control").selectedIndex =
ThisWorkbook.Sheets("Challan AutoFill").Range("r2").Value
doc.getElementById("NetBanking").Click
doc.getElementById("NetBank_Name_c").Value = ThisWorkbook.Sheets("Challan
AutoFill").Range("t2").Value
End Sub```
您可以使用 getElementsByTag("input") returns 您可以通过索引访问的组件集合,然后将它们的值设置为您需要的值。
doc.getElementsByTagName("input")(0).value = "My value"
您可以通过 doc.getElementsByName
使用输入的名称获取输入。它 returns 文档中具有指定名称的所有元素的集合。然后你应该找出你想要的元素的索引号。
例如,您可以使用以下代码设置"Tax Deduction Account No"的值:
doc.getElementsByName("TAN")(1).Value = "abc"
对于其他输入,您可以使用相同的方法。我通过设置一些值进行了测试,您可以看到结果: