Elseif未在Excel Makro(VBA)中工作

Elseif未在Excel Makro(VBA)中工作,vba,excel,Vba,Excel,我的excel宏有一个小问题 问题描述: 我想创建一个宏,如果一个答案是使用下拉菜单,它可以隐藏/取消隐藏特殊工作表 下拉菜单: 澳大利亚人 奥地利 德国 如果其中一个选择,例如,德国-->与德国的工作表应取消隐藏,与澳大利亚和奥地利的工作表应隐藏 我尝试使用ElseIf命令: Sub Choose_Country() If (c2 = "Germany") Then Sheet8.Visible = True Sheet9.Visible = False Sheet10.Visible =

我的excel宏有一个小问题

问题描述:

我想创建一个宏,如果一个答案是使用下拉菜单,它可以隐藏/取消隐藏特殊工作表

下拉菜单:

澳大利亚人

奥地利

德国

如果其中一个选择,例如,德国-->与德国的工作表应取消隐藏,与澳大利亚和奥地利的工作表应隐藏

我尝试使用ElseIf命令:

Sub Choose_Country()

If (c2 = "Germany") Then

Sheet8.Visible = True
Sheet9.Visible = False
Sheet10.Visible = False

ElseIf (C2 = Australia) Then

Sheet8.Visible = False
Sheet9.Visible = True
Sheet10.Visible = False

ElseIf (C2 = Austria) Then

Sheet8.Visible = False
Sheet9.Visible = False
Sheet10.Visible = True

End if 
End sub
错误在于,无论我每次选择什么,只要德国表是可见的,而其他的不可见

知道我的错误是什么吗


问候

我想你忘了不少“ 正如@Raph所说,select case看起来更干净

提示:总是使用选项显式,你会发现这一个

提示2:您可以使用lcase()来比较不区分大小写的

Sub Choose_Country()
c2 = something I dare hope :D
select case c2
case "Germany"

Sheet8.Visible = True
Sheet9.Visible = False
Sheet10.Visible = False

case "Australia"

Sheet8.Visible = False
Sheet9.Visible = True
Sheet10.Visible = False

case "Austria"

Sheet8.Visible = False
Sheet9.Visible = False
Sheet10.Visible = True
case else
      msgbox "unknown country"
End select
End sub

我想你忘了好几个“ 正如@Raph所说,select case看起来更干净

提示:总是使用选项显式,你会发现这一个

提示2:您可以使用lcase()来比较不区分大小写的

Sub Choose_Country()
c2 = something I dare hope :D
select case c2
case "Germany"

Sheet8.Visible = True
Sheet9.Visible = False
Sheet10.Visible = False

case "Australia"

Sheet8.Visible = False
Sheet9.Visible = True
Sheet10.Visible = False

case "Austria"

Sheet8.Visible = False
Sheet9.Visible = False
Sheet10.Visible = True
case else
      msgbox "unknown country"
End select
End sub

为什么不使用
Select Case c2
而不是所有这些
If
子句?为什么不使用
Select Case c2
而不是所有这些
If
子句?虽然这不是一个答案,但我同意,但我认为如果你能提供一个做选择的方法的例子,那将是一件好事case@Mr.Burns这是一个愚蠢的回答,但我很确定问题出在“”上。我要补充一点:)代码有很多问题,“”只是其中的一个(尽管我可能很挑剔),但是为了帮助人们理解硬件来改进选择案例的示例可能会改进很多(我第一次使用选择案例是一团糟)@Pierre:
case“string”
是否也适用于VBA?我总是键入
Case Is=“string”
。@R3uK:np这就是这个地方的用途。:-)我刚刚在这里学到了value和value2之间的区别。虽然这不是一个答案,但我同意,但我认为如果你能提供一个选择方法的示例,那将是一件好事case@Mr.Burns这是一个愚蠢的回答,但我很确定问题出在“”上。我要补充一点:)代码有很多问题,“”只是其中的一个(尽管我可能很挑剔),但是为了帮助人们理解硬件来改进选择案例的示例可能会改进很多(我第一次使用选择案例是一团糟)@Pierre:
case“string”
是否也适用于VBA?我总是键入
Case Is=“string”
。@R3uK:np这就是这个地方的用途。:-)我刚刚学到了value和value2之间的区别。