Excel Case Else循环返回到Select Case

Excel Case Else循环返回到Select Case,excel,vba,Excel,Vba,我有一个宏,它使用Select Case根据单元格的值选择电子邮件模板 但是,有时,正在检查的单元格为空白。我是否可以更改正在检查的单元格,例如在案例Else中的(行+1),然后循环回所选案例的开头,例如: CellToCheck = .Cell(1, 1) Select Case CellToCheck Case = 1 Email = "blah blah 1" Case = 2 Email = "blah blah 2" Case = 3 Email = "blah blah 3"

我有一个宏,它使用Select Case根据单元格的值选择电子邮件模板

但是,有时,正在检查的单元格为空白。我是否可以更改正在检查的单元格,例如在案例Else中的(行+1),然后循环回所选案例的开头,例如:

CellToCheck = .Cell(1, 1)

Select Case CellToCheck

Case = 1
Email = "blah blah 1"

Case = 2
Email = "blah blah 2"

Case = 3
Email = "blah blah 3"

Case Else
CellToCheck = Cell(2,1)
'Loop back to "Select Case CellToCheck
我曾考虑将其包含在Do-While循环中,但如果不调用Case-Else,我不知道如何退出循环


想法?

像这样的想法应该有用:

   CellToCheck = .Cell(1, 1)
   email = ""

   Do While email = ""
      Select Case CellToCheck
         Case Is = 1
            email = "blah blah 1"

         Case Is = 2
            email = "blah blah 2"

         Case Is = 3
            email = "blah blah 3"

         Case Else
            CellToCheck = Cell(2, 1)
      End Select
   Loop

只是你检查的两个单元格吗?如果是这样,请在开始时尝试一个条件

Function EmailCheck()

    Dim Email As String
    Dim CellToCheck As Integer

    CellToCheck = Cells(1, 1).Value
    If Cells(1, 1).Value = "" Then CellToCheck = Cells(2, 1).Value

    Select Case CellToCheck

    Case Is = 1
    Email = "blah blah 1"

    Case Is = 2
    Email = "blah blah 2"

    Case Is = 3
    Email = "blah blah 3"

    Case Else
    MsgBox "Check Range Values"
    Exit Function

    End Select

    MsgBox Email

End Function

您应该使用循环块或跳转语句(不推荐)。要退出
Do
循环,只需使用
exit Do