【问题标题】:How do I Nest Two Loops in one do while?我如何一次嵌套两个循环?
【发布时间】:2017-11-18 07:42:46
【问题描述】:

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

基本上,当有一个有效的电子邮件时,我想检查我是否应该发送电子邮件(是/否),如果没有 -> 循环,如果是,这是电子邮件,然后循环。我已经正确调暗了所有内容

请看下面的代码。谢谢。

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

【问题讨论】:

  • 现在我看到编译错误 - 第一个循环没有执行的循环。
  • 你有两个 if 语句,只有一个 end if。您的 Do While 仅在计数后循环。错误是因为你的最终循环没有附加到任何东西。
  • 谢谢 BerticusMaximus - 如果我将红色停止代码放在 If Sheets = Y 行,我会得到 Loop without Do 的编译错误。但是,他们可以清楚地看到那里有一个 Do While。我也尝试过在 Email vbNullstring 中添加第二个 do,但它似乎不起作用

标签: excel loops do-while vba


【解决方案1】:

我从未使用过 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 块的循环。顺便提一句。如果您需要嵌套循环,则需要确保每个“Do While”都有一个且只有一个匹配的“Loop”

【讨论】:

  • 感谢您的 Dabisa Kelava - 我会尝试并报告。非常感谢。
  • 它不起作用-例如,如果Count = 1是N,那么我希望它转到Count = 2并测试它是否也是N。我认为嵌套循环是必要的-如果 Count = 2 也是 N,我不希望它从 Count = 1 = N 变为 Count = 2 并继续发送电子邮件。你怎么看?
  • 我更改了建议解决方案中的代码,以便您重试。但我必须说,我真的不明白你想要达到什么目的。问题可能是变量 Count 和 Email 没有初始化,所以我添加了这些变量的初始化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 2014-06-11
  • 2014-05-20
相关资源
最近更新 更多