【发布时间】:2020-05-02 12:28:08
【问题描述】:
我需要使用 VBA 填写 Web 表单。在输入数据表中,F、G、H 列有几个单元格是空白的。 我想跳过那些空白单元格并移至下一条语句而不显示任何错误。 我已经提到了我创建的 VBA SCRIPT。
如果有人帮我解决这个问题,我会很高兴。
Sub copy_project_loop()
Dim IE As Object
Dim Doc As HTMLDocument
Set IE = CreateObject("InternetExplorer.Application")
Dim SHELL_OBJECT
SHELL_OBJECT = "WScript.Shell"
Set objShell = CreateObject(SHELL_OBJECT)
IE.Visible = True
IE.navigate "URL"
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Set Doc = IE.document
' Set numrows = number of rows of data.
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
' Establish "For" loop to loop "numrows" number of times.
For intRow = 2 To NumRows
Doc.getElementById("txtTimeStudyNbr").Value = ThisWorkbook.Sheets("data").Range("A" & intRow).Value
Doc.getElementById("Search").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifierTypes").Value = ThisWorkbook.Sheets("data").Range("E1").Value
Doc.getElementById("Search").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifiers").Value = ThisWorkbook.Sheets("data").Range("E" & intRow).Value
Doc.getElementById("ADD").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifierTypes").Value = ThisWorkbook.Sheets("data").Range("F1").Value
Doc.getElementById("Search").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifiers").Value = ThisWorkbook.Sheets("data").Range("F" & intRow).Value
Doc.getElementById("ADD").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifierTypes").Value = ThisWorkbook.Sheets("data").Range("G1").Value
Doc.getElementById("Search").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifiers").Value = ThisWorkbook.Sheets("data").Range("G" & intRow).Value
Doc.getElementById("ADD").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifierTypes").Value = ThisWorkbook.Sheets("data").Range("H1").Value
Doc.getElementById("Search").Click
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Doc.getElementById("lstQualifiers").Value = ThisWorkbook.Sheets("data").Range("H" & intRow).Value
Doc.getElementById("ADD").Click
Next
End Sub
【问题讨论】:
-
您可以测试单元格是否包含数据并仅在包含数据时执行语句。使用
If ... Then ... End If -
感谢我尝试使用“如果...然后...结束如果”现在它工作正常。