我有一个循环的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”来跳过此消息这意味着客户电子邮件在系统中并继续发送电子邮件并在此后循环。
答案 0 :(得分:2)
以下是Excel VBA中If / Then / Else的语法,用于根据您的规范检查单元格的值。
If (Range("F5").Value = "Not in List") Then
'code to execute
Else
End If
要访问单元格的值(或其他属性),请使用Range()
。 Range()
还有很多其他用途,你可以在这里查看。 Range() Excel VBA
答案 1 :(得分:0)
最好创建一个字典来存储CustomerID和电子邮件。按客户ID搜索,然后尝试将电子邮件发送到该地址。你好多了。
Dim d As Object 设置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