本守则隐藏除德国之外的所有国旗。我有一个存储国家短名称的变量,如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
比@ 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
你可以循环所有形状并设置所有Shapes Visible = false,然后将你想要看到的形状设置为True
Sub main ()
Call setShapeVisible("GermanyRecommendations")
End Sub
Sub setShapeVisible(byVal strCountry as String)
Dim shp As Shape
For Each shp In Worksheets("Recommendations").Shapes
shp.Visible = False
Next
Worksheets("Recommendations").Shapes(strCountry).Visible = True
End Sub