有没有办法根据变量中的国家/地区名称选择正确的国家/地区标志?

Tim*_*Tim 0 excel vba excel-vba

本守则隐藏除德国之外的所有国旗.我有一个存储国家短名称的变量,如GER,NL等.

有没有办法只显示相应的标志而不为每种情况创建多个这样的长真/假块?

 'Show proper flag on list and charts
Worksheets("Recommendations").Shapes("GermanyRecommendations").Visible = True
Worksheets("Recommendations").Shapes("NetherlandsRecommendations").Visible = False
Worksheets("Recommendations").Shapes("AustriaRecommendations").Visible = False
Worksheets("Recommendations").Shapes("CzechRecommendations").Visible = False
Worksheets("Recommendations").Shapes("FranceRecommendations").Visible = False
Worksheets("Recommendations").Shapes("PolandRecommendations").Visible = False
Worksheets("Recommendations").Shapes("SlovakiaRecommendations").Visible = False
Worksheets("Recommendations").Shapes("RomaniaRecommendations").Visible = False
Worksheets("Recommendations").Shapes("SpainRecommendations").Visible = False
Worksheets("Recommendations").Shapes("BelgiumRecommendations").Visible = False
Worksheets("Recommendations").Shapes("HungaryRecommendations").Visible = False
Run Code Online (Sandbox Code Playgroud)

Joh*_*nyL 7

比@ Moosli的解决方案简洁一点:

Sub SetFlagVisibility(strCountry As String)
    Dim shp As Shape
    For Each shp In Worksheets("Recommendations").Shapes
       shp.Visible = (shp.Name = strCountry)
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)