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()他にもたくさんの使い方がありますので、こちらで調べてください。範囲 () エクセル 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 に答える