如果范围内的单元格不等于空白,则将字符串应用于另一个范围内的单元格

时间:2020-01-21 15:40:30

标签: excel vba

我有两个范围。 (“ A2:A81,H2:H81”)和(“ E2:E81,L2:L81”)

(“ A2:A81,H2:H81”)=搜索范围和
(“ E2:E81,L2:L81”)=字符串范围

我有一个范围(A2:A81,H2:H81),在这里我要查看范围内的单元格是否不为空白。如果该范围内的这些单元格之一不为空,并且“字符串范围”内的单元格为空,我想在该范围内的单元格中输入字符串“ No Punch”。

例如:如果单元格A10不为空白,而E10为空白,则在运行宏时,请输入字符串“ No Punch”。

这是坏的。我可以对每个语句仅使用(不使用if),但是它将填充空白范围内的所有单元格,并且不检查其他范围。

Sub FinishSheet()

    If (Worksheets("GerriSheet").Range("A2:A81,H2:H81").Value = "") Then

    For Each cell In Range("E2:E81,L2:L81")
        If cell.Value = "" Then
            cell.Value = "No Punch"
        End If
    Next cell

    Else
        'Do nothing
    End If

End Sub

1 个答案:

答案 0 :(得分:4)

您要循环条件范围并使用Offset()

Sub FinishSheet()
    For Each cell In Worksheets("GerriSheet").Range("A2:A81,H2:H81")
        If cell.Value = "" And cell.Offset(, 4).Value <> "" Then
            cell.Offset(, 4).Value = "No Punch"
        End If
    Next cell
End Sub