2017-08-30 67 views
2

在我的工具中,我嘗試創建一個形狀,重命名它,讓它隨列的移動寬度一起移動,並將其超鏈接到彙總表。這是我迄今爲止,預先感謝。VBA - 創建,編輯和超鏈接形狀

For s = 7 To Sheets.Count 
    With Sheets(s) 
     Dim GoToSummary As Shape 
     Set GoToSummary = .Shapes.AddShape(msoShapeRoundedRectangle, 400, 153 + 12.75 * 2, 300, 50) 

     .Shapes(GoToSummary).TextFrame.Characters.Text = "Go Back To Summary" 
    End With 
Next s 

我知道這是不正確的,這就是爲什麼我伸出手,因爲我找不到任何類似於我的情況。

回答

2

你很近!

Sub test() 
Dim GoToSummary As Shape 

For s = 7 To Sheets.Count 
    Set GoToSummary = Sheets(s).Shapes.AddShape(msoShapeRoundedRectangle, 400, 153 + 12.75 * 2, 300, 50) 
    GoToSummary.TextFrame.Characters.Text = "Go Back To Summary" 
    Sheets(s).Hyperlinks.Add Anchor:=GoToSummary, Address:="", SubAddress:="Summary!A1" 
Next s 

End Sub 
  • Dim GoToSummary外循環
  • 一旦你與集中定義GoToSummary,你可以參考它直接,即作爲GoToSummary代替.Shapes(GoToSummary)
  • 新增的超級鏈接以及
+0

好,只有一個問題,我如何保持形狀相同的大小。有些紙張比其他紙張有更寬的列,這使得一些比其他紙張更寬。 –

+2

在超鏈接之前,嘗試添加'GoToSummary.Placement = xlMove' 和'GoToSummary.Width = 300' –