多个VBA如果还是陈述

我有3个If语句,无论“dept”的值如何,都会导致真实的结果。
如果我删除两个If语句只留下一个,它就起作用了。 我究竟做错了什么?

Dim Dept As String Dim wb As Workbook Set wb = ThisWorkbook Dept = Application.WorksheetFunction.VLookup(Name, Sheet1.Range("F10"), 1) If Dept = "Dept1" Or "Dept2" Then wb.SendMail "email address", Subject:="Subject heading 1" End If If Dept = "Dept3" Or "Dept4" Then wb.SendMail "email address", Subject:="Subject heading 2" End If If Dept = "Dept5" Or "Dept6" Then wb.SendMail "email address", Subject:="Subject heading 3" End If 

你不能在这里使用或者像这样。 你必须重复这个variables:

 If Dept = "Dept1" Or Dept = "Dept2" Then wb.SendMail "email address", Subject:="Subject heading 1" End If If Dept = "Dept3" Or Dept = "Dept4" Then wb.SendMail "email address", Subject:="Subject heading 2" End If If Dept = "Dept5" Or Dept = "Dept6" Then wb.SendMail "email address", Subject:="Subject heading 3" End If 

或者你可以使用Select Case:

 Select Case Dept case "Dept1", "Dept2" wb.SendMail "email address", Subject:="Subject heading 1" case "Dept3", "Dept4" wb.SendMail "email address", Subject:="Subject heading 2" case "Dept5", "Dept6" wb.SendMail "email address", Subject:="Subject heading 3" End Select 

我假设Dept是一个stringvariables。

然后代码应该看起来像:

 If Dept = "Dept1" Or Dept = "Dept2" Then wb.SendMail "email address", Subject:="Subject heading 1" End If 

VBA将您的布尔条件作为(Dept = "Dept1") or CBool("Dept2")交互.VBA显然很难将您的string转换为布尔值。

你有没有尝试添加

 If Dept = "Dept1" Or Dept = "Dept2" Then