2017-08-29 246 views
1

我創建了一個代碼,它將循環遍歷工作簿中的所有工作表,並按圖表名稱列出所有圖表以及工作表名稱 此代碼工作正常。在工作簿中給出錯誤「引用無效」的超鏈接

現在我想要創建一個圖表名稱的超鏈接,這樣當我點擊它時,它會將我引導到圖表所在的位置。

下面提到的代碼創建一個超鏈接,但是當我點擊它,然後它給消息「引用無效」

我猜下面提到行需要修改:

ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
     "'" & .ChartObjects(lngC).name & "'" & "!A1", TextToDisplay:=.ChartObjects(lngC).name 

請建議。

總體代碼:

Sub Chartlist() 
Dim wks As Worksheet 
Dim lngS As Long, lngC As Long, lngX As Long 

Set wks = ActiveWorkbook.Worksheets.Add 

For lngS = 1 To ActiveWorkbook.Sheets.count 
With ActiveWorkbook.Sheets(lngS) 
For lngC = 1 To .ChartObjects.count 
lngX = lngX + 1 

wks.Cells(lngX, 1).Value = .name 
wks.Cells(lngX, 2).Value = .ChartObjects(lngC).name 
wks.Cells(lngX, 2).Activate 

ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
     "'" & .ChartObjects(lngC).name & "'" & "!A1", TextToDisplay:=.ChartObjects(lngC).name 
Next lngC 
End With 
Next lngS 
wks.Columns(1).WrapText = False 
wks.Columns(1).EntireColumn.AutoFit 
Set wks = Nothing 
End Sub 
+0

首先刪除activate和activecell,只加入兩行代碼。 – Luuklag

回答

1

代替

ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
     "'" & .ChartObjects(lngC).Name & "'" & "!A1", TextToDisplay:=.ChartObjects(lngC).Name 

使用

ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
     "'" & .ChartObjects(lngC).Parent.Name & "'" & "!" & Range(.ChartObjects(lngC).TopLeftCell, .ChartObjects(lngC).BottomRightCell).Address(0, 0), _ 
     TextToDisplay:=.ChartObjects(lngC).Name 

其中,
.ChartObjects(lngC).Parent.Name是片名稱,其中圖表存在並且 Range(.ChartObjects(lngC).TopLeftCell, .ChartObjects(lngC).BottomRightCell).Address(0, 0)爲c的地址哈特。

+0

非常感謝你的工作:) – Stacey

+0

@Stacey - 不客氣! – Mrig

相關問題