這個問題的形狀之前已經問,但我找到了解決辦法似乎沒有工作,不管我怎麼努力 - 這是我的問題:添加一個「家」的超鏈接使用VBA
我有幾個工作表一本工作手冊。我創建了一個宏,它創建一個按鈕(使用一個形狀)並在它上面放置一個超鏈接到名爲「Crawl Summary」的書中的第一個表格。宏然後將該按鈕放在書中的每個其他工作表上。
所記錄的宏是這樣的:
'Creates a navigation button back to Crawl Summary Page on each page
Sheets("Robots.txt Blocked").Select
Range("A1").Select
ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 0, 1.2, 52.2, 13.2). _
Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "SUMMARY"
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 7). _
ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignLeft
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 7).Font
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
Selection.ShapeRange.ScaleWidth 1.9540229885, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.9090909091, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = _
msoAlignCenter
Selection.ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:=""
Selection.Copy
Sheets("Noindexed Pages").Select
Range("A1").Select
ActiveSheet.Paste
正如你可以看到,該代碼與按鈕被複制到被稱爲「Noindexed頁」下一個工作表結束,但對於上述兩個頁面的超鏈接是不應用。
這顯然是因爲這個答案#1的解釋:
Excel VBA add hyperlink to shape to link to another sheet
此頁面上給出的推薦的解決方案如下:
Sub SetHyperlinkOnShape()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet6")
Dim hyperLinkedShape As Shape
Set hyperLinkedShape = ws.Shapes("Rounded Rectangle 1")
ws.Hyperlinks.Add Anchor:=hyperLinkedShape, Address:="", _
SubAddress:="Sheet4!C4:C8", ScreenTip:="yadda yadda"
End Sub
但是,這是行不通的無論我嘗試什麼,即使我創建
任何人都可以建議我需要什麼代碼來成功添加我內部超鏈接到活動工作表中按鈕(形狀)上的「抓取摘要」?
由於它是在2個不同的工作簿,您需要在'Address'屬性中指定全名;) – R3uK
嘿,謝謝,這會打開我的另一個問題 - 您如何知道形狀的名稱?傳統上,我會錄製一個宏,用於選擇有問題的形狀,然後查看生成的代碼以查看其定義的內容,但是從屏幕截圖看,它看起來像是在條形圖中顯示的,而不必這樣做? – Superhans
有兩種選擇 - 可以查看欄並在其中更改名稱或在創建時設置名稱! @Superhans – Vityata