1

我有一个循环的 VBA 代码,现在我陷入了僵局,因为我不知道如何检查某些东西。我有一个命令按钮,然后单击时我希望它执行 if then 语句。

基本上,如果单元格 F5 显示“不在列表中”,则使客户 ID 值 +1 并重新开始,如果不是,则启动子循环 1

有什么建议么?谢谢

更新:

这是我到目前为止所拥有的:

Private Sub CommandButton1_Click()
    Call Loop1
End Sub

Sub Loop1()
    Dim i As Integer
    i = ActiveSheet.Range("F2").Value
    Do
        Call OutlookMailSender
        ActiveSheet.Range("F2").Value = ActiveSheet.Range("F2").Value + 1
    Loop Until (IsEmpty(ActiveCell.Offset(4, 0)))
End Sub

因此文件调用 Outlook 发送消息。但是我需要它在发送消息之前检查“0”,这意味着电子邮件地址不在我们的系统中,并通过转到下一个客户(将 +1 到客户编号)或检查“1”来跳过这个这意味着客户电子邮件在系统中并继续发送电子邮件并随后循环。

4

2 回答 2

2

这是 Excel VBA 中 If/Then/Else 的语法,用于根据您的规范检查单元格的值。

If (Range("F5").Value = "Not in List") Then
    'code to execute
Else

End If

要访问单元格的值(或其他属性),请使用Range(). Range()还有很多其他用途,你可以在这里查找。范围()Excel VBA

于 2013-06-18T13:00:39.467 回答
0

最好创建一个字典来存储 CustomerID 和电子邮件。按客户 ID 搜索,然后尝试将电子邮件发送到该地址。你会好很多。

Dim d As Object Set d = CreateObject("Scripting.Dictionary")

d.Add "customer A", "a@mail.com"

searchEmail As String

Dim customer As Variant
For Each customer In d.Keys
    If d.Item(customer) = searchEmail Then
        customerID = CStr(customer)

        sendMailTo (customerID)
        exit for
    End If
Next
于 2013-07-04T15:03:27.163 回答