具有多个条件的VBA If/And公式.当仅满足两个条件之一时,代码将触发



在运行之前,我试图让宏检查两个条件:是否输入了水果以及是否为每个水果添加了计数。

我想确保在输入水果时为每个水果输入一个数量,但水果不会一直输入到第94行(例如,可能只输入到第15行(。当我运行下面的宏时,消息框会出现在输入任何水果的位置之外,但我希望它在没有输入水果时停止。

Sub Check_fruit()
Dim x As String
Dim y As Integer
Dim rSearch As Range
Dim rSearch1 As Range
Dim cell As Range, cell1 As Range
Dim matchRow As Integer
Set rSearch = Sheets("Import").Range("C05:C94")
Set rSearch1 = Sheets("Import").Range("D05:D94")
For Each cell In rSearch
x = cell.value
For Each cell1 In rSearch1
y = cell1.value

If y = 0 And (x = "apple" _
Or x = "orange" _
Or x = "pear" _
Or x = "grape" _
Or x = "peach" _
Or x = "banana" _
Or x = "strawberry") Then
MsgBox "You must specify how many fruit."
Exit Sub
End If
Next cell1
Next cell

End Sub

只需要BigBen指出的一个循环。

您可以通过从ColC 中偏移来从ColD中读取

Sub Check_fruit()
Dim cell As Range

For Each cell In Sheets("Import").Range("C5:C94").Cells
Select Case cell.Value
Case "orange", "pear", "grape", "peach", "banana", "strawberry"
If cell.Offset(0, 1) = 0 Then 'read next column over
MsgBox "You must specify how many fruit."
cell.Offset(0, 1).Select
Exit Sub
End If
End Select
Next cell
End Sub

最新更新