excel vba if语句与OR和场景
我有一个电子邮件系统,它根据当前记录的国籍选择不同的语言模板。但是,我需要动态选择语言,因为最终用户并不总是希望以条目的国家语言发送消息,这意味着,例如,如果记录的国籍为“IT”(意大利),我希望在继续之前检查语言模板是否设置为“Active”,分别默认为EN(英语)如果模板处于“非活动”状态 现在,我需要的if语句是这样的excel vba if语句与OR和场景,vba,excel,Vba,Excel,我有一个电子邮件系统,它根据当前记录的国籍选择不同的语言模板。但是,我需要动态选择语言,因为最终用户并不总是希望以条目的国家语言发送消息,这意味着,例如,如果记录的国籍为“IT”(意大利),我希望在继续之前检查语言模板是否设置为“Active”,分别默认为EN(英语)如果模板处于“非活动”状态 现在,我需要的if语句是这样的 if (nationality = "DE" or nationality = "AT" or nationality = "CH") _
if (nationality = "DE" or nationality = "AT" or nationality = "CH") _
AND (Range("B5") = "Active") then
'do something
Elseif ... 'check other languages
如何将这些或语句组合为多种语言,同时添加AND语句以检查模板是否处于活动状态?A可能有助于整理多个匹配项
If ((nationality = "DE" Or nationality = "AT" Or nationality = "CH") And Range("B5").Value = "Active") Then
Set Rng = Sheets("PostStayEmail_DE").Range("A1:B30").SpecialCells(xlCellTypeVisible)
With ActiveWorkbook.Sheets("PostStayEmail_DE")
'do something
End With
ElseIf ((nationality = "IT") And Range("B5").Value = "Active") Then
Set Rng = Sheets("PostStayEmail_IT").Range("A1:B30").SpecialCells(xlCellTypeVisible)
With ActiveWorkbook.Sheets("PostStayEmail_IT")
'do something
End With
End If
if lcase(Range("B5").Value) = "active" then
select case ucase(nationality)
case "DT", "AT", "CH"
With ActiveWorkbook.Sheets("PostStayEmail_DE")
Set rng = .Range("A1:B30").SpecialCells(xlCellTypeVisible)
'do something
End With
case "IT"
With ActiveWorkbook.Sheets("PostStayEmail_IT")
Set rng = .Range("A1:B30").SpecialCells(xlCellTypeVisible)
'do something
End With
case else
'do thing if no matches
end select
else
'do stuff when B5 is not 'Active'
end if
根据ISO 3166-1 alpha-2两个字母的国家/地区代码的各种组合的代码重复情况,您可能只希望记录工作表名称,并将所有进一步的处理保留在选定案例下方的单个块中
If (nationality = "DE" OR nationality = "AT" OR nationality = "CH") _
AND Range("B5") = "Active" then
'do something
End If
这应该行得通您现在面临的问题是什么?是否需要检查每个语言模板表上的范围B5?你有多少种不同的模板?这是值得称赞的,因为它干净地解决了可能的情况。非常喜欢这个解决方案,因为我正在为每个消息模板反复执行上述操作。
If (nationality = "DE" OR nationality = "AT" OR nationality = "CH") _
AND Range("B5") = "Active" then
'do something
End If