我是新來的論壇,仍在學習VBA。如果範圍包含形狀的名稱,則使形狀可見
我的工作表上有幾個形狀(美國的地圖 - 每個州都有自己的形狀)。放置在地圖上的小圈子代表某些城市。我想在幾個城市之間有直線連接。雖然有很多連接器,但是我希望一次只能顯示三個,這取決於我在A8:A10範圍內的選擇。如果某個連接器未在該範圍內命名,則它應該是不可見的。
我是新來的論壇,仍在學習VBA。如果範圍包含形狀的名稱,則使形狀可見
我的工作表上有幾個形狀(美國的地圖 - 每個州都有自己的形狀)。放置在地圖上的小圈子代表某些城市。我想在幾個城市之間有直線連接。雖然有很多連接器,但是我希望一次只能顯示三個,這取決於我在A8:A10範圍內的選擇。如果某個連接器未在該範圍內命名,則它應該是不可見的。
你的說法應該是: 。可見= msoTrue或。可見= msoFalse
If yourCondition Then
Dim oActive As Worksheet
Set oActive = ActiveSheet
oActive.Shapes("CharlotteTruck").Visible = msoTrue
End if
編輯:
這是一個條件,你可以使用:
If Not Intersect(Target, Range("A8:A10")) Is Nothing Then
'condition to run when not clicked in range
Cancel = True 'This line can be remove if not needed
'condition to run if cell in range was clicked
End If
讓我知道這是否適合你
您可以使用下面的代碼。假設是形狀和範圍在同一張紙上。
Public Sub Test()
ActivateShapes ActiveSheet.Range("A8:A10")
End Sub
Public Sub ActivateShapes(rInputRange As Range)
Dim rCell As Range
On Error Resume Next
For Each rCell In rInputRange
rInputRange.Parent.Shapes(rCell).Visible = msoTrue
Next rCell
End Sub
發佈您的嘗試解決方案。嘗試瀏覽* WorksheetEvents *開始。現在,你的問題是缺乏細節,並在這裏脫離主題。 – L42