如何在一次中嵌套两个循环?

时间:2017-06-15 17:48:26

标签: excel-vba loops do-while vba excel

我试图在do while中嵌套两个循环。

基本上,虽然有一个有效的电子邮件,我想检查是否应该发送电子邮件(是/否),如果没有 - >循环,如果是Y,这是电子邮件,那么循环。我已经把所有东西都正确地

请参阅下面的代码。谢谢。

Sub EmailDisplay()
Do While Email <> vbNullString 
    If Sheets("Mail").Cells(Count, 1).Value = N Then
    Count = Count + 1
    Loop

    If Sheets("Mail").Cells(Count, 1).Value = Y Then
    Set aOutlook = CreateObject("Outlook.Application")
    Set aEmail = aOutlook.CreateItem(0) 
    Name = Sheets("Mail").Cells(Count, 2).Value


Count = Count + 1 'Updates Variable count to continue loop
Email = Sheets("Mailing").Cells(Count, 1).Value 

End If

Loop

End Sub

1 个答案:

答案 0 :(得分:0)

我从未使用过Visual Basic,但试试这个:

Sub EmailDisplay()
'I added next two line because Count and Email are not initialized
Count = 1
Email = Sheets("Mailing").Cells(Count, 1).Value 
Do While Email <> vbNullString 
    If Sheets("Mail").Cells(Count, 1).Value = Y Then
        Set aOutlook = CreateObject("Outlook.Application")
        Set aEmail = aOutlook.CreateItem(0) 
        Name = Sheets("Mail").Cells(Count, 2).Value
    End If
    Count = Count + 1 'Updates Variable count to continue loop
    Email = Sheets("Mailing").Cells(Count, 1).Value 
Loop
End Sub

我认为你不需要嵌套循环。在这里,我们有一个带有if块的循环,用于两种情况。 BTW。如果你需要嵌套循环,你需要确保每个“Do While”只有一个匹配的“循环”