一旦数组中的所有项目都相同,就发送电子邮件

时间:2019-03-25 17:16:42

标签: excel vba

我正在尝试编写一个简单的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

2 个答案:

答案 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