我正在尝试编写一个简单的VBA脚本,一旦电子表格中的特定单元格的值为“完成”,该脚本便会发送电子邮件。我已经基于这些单元格值创建了一个数组,并且可以很好地遍历该数组。我面临的挑战是使代码仅执行一次,而不是在数组中找到值“ Complete”的次数。
我在下面包含了我的代码:
Dim arr(3) As String
arr(0) = Range("A73").Value
arr(1) = Range("A77").Value
arr(2) = Range("A81").Value
arr(3) = Range("A84").Value
For Each i In arr
If i = "Complete" Then
Call Mail_small_Text_Outlook
End If
Next i
答案 0 :(得分:0)
只需设置一个值为0的变量,如果发现“完成”的值与众不同,则在foreach完成时检查该值,将其设置为1。
Dim flag as String
flag = 0
For Each i In arr
If i != "Complete" Then
flag = 1
End If
Next i
if(flag==0){ Call Mail_small_Text_Outlook }
很长一段时间以来我在vb中都没有代码,忘记了语法,但是这个想法就在那里了。
答案 1 :(得分:0)
您只需要一个Exit For
,因此它在第一次找到Complete
之后退出循环。
Dim arr(3) As String
arr(0) = Range("A73").Value
arr(1) = Range("A77").Value
arr(2) = Range("A81").Value
arr(3) = Range("A84").Value
Dim i As Variant
For Each i In arr
If i = "Complete" Then
Call Mail_small_Text_Outlook
Exit For
End If
Next i