Excel VBA循环开启条件:仅当此行中的A列为空时才使用B列的值
我正在处理vba代码,该代码从网站获取特定的数据集,通过B列的值运行,我想添加一个条件,即如果A列有任何文本或数字,代码应该跳过该行。换句话说,如果A列在同一行中为空,代码将只使用B列中的值。 代码如下:Excel VBA循环开启条件:仅当此行中的A列为空时才使用B列的值,excel,vba,Excel,Vba,我正在处理vba代码,该代码从网站获取特定的数据集,通过B列的值运行,我想添加一个条件,即如果A列有任何文本或数字,代码应该跳过该行。换句话说,如果A列在同一行中为空,代码将只使用B列中的值。 代码如下: Dim Cel As Range, ms As Worksheet, dom As HTMLDocument Set ms = Sheets("Scramble") Const searchUrl = "http://www.scramble.nl/index.php? option=
Dim Cel As Range, ms As Worksheet, dom As HTMLDocument
Set ms = Sheets("Scramble")
Const searchUrl = "http://www.scramble.nl/index.php?
option=com_mildb&view=search"
For Each Cel In ms.Range("B2:B" & ms.Range("B" &
Rows.Count).End(xlUp).row).SpecialCells(2)
Set dom = New HTMLDocument
With CreateObject("winhttp.winhttprequest.5.1")
.Open "POST", searchUrl, False
.setRequestHeader "Content-Type", "application/x-www-form-
urlencoded"
.send "Itemid=60&af=usaf&serial=" & Cel &
"&sbm=Search&code=&searchtype=&unit=&cn="
dom.body.innerHTML = .responseText
End With
On Error Resume Next
Cel.Offset(, 2) = dom.getElementsByClassName("rowBord")(0).Cells(1).innerText 'Code
Cel.Offset(, -1) = dom.getElementsByClassName("rowBord")(0).Cells(2).innerText 'Type
Cel.Offset(, 11) = dom.getElementsByClassName("rowBord")(0).Cells(5).innerText 'Status
Cel.Offset(, 12) = dom.getElementsByClassName("rowBord")(0).Cells(7).innerText 'Last
Next
End Sub
更换这些线路
Cel.Offset(, 2) = dom.getElementsByClassName("rowBord")(0).Cells(1).innerText 'Code
Cel.Offset(, -1) = dom.getElementsByClassName("rowBord")(0).Cells(2).innerText 'Type
Cel.Offset(, 11) = dom.getElementsByClassName("rowBord")(0).Cells(5).innerText 'Status
Cel.Offset(, 12) = dom.getElementsByClassName("rowBord")(0).Cells(7).innerText 'Last
与
简单的
If
语句就是您需要的
'first check, if A cell in i-th row is empty
If Not Cells(i, 1).Value = "" Then
'copy from B column
End If
此外,可以更简单地指定此范围:
Range("B2:B" & ms.Range("B" & Rows.Count).End(xlUp).row)
像这样
Range(Cells(2, 2), Cells(Rows.Count, 2).End(xlUp))
但您需要的是遍历所有这些单元格,并分别检查我提到的每一行的条件,如下所示:
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
'first check, if A cell in i-th row is empty
If Not Cells(i, 1).Value = "" Then
'copy from B column
End If
Next i
For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
'first check, if A cell in i-th row is empty
If Not Cells(i, 1).Value = "" Then
'copy from B column
End If
Next i