【问题标题】:Hyperlink giving error "reference not valid" in a workbook超链接在工作簿中给出错误“引用无效”
【发布时间】:2017-08-29 16:00:31
【问题描述】:

我创建了一个代码,它将遍历工作簿中的所有工作表,并按图表名称和工作表名称列出所有图表 此代码运行良好。

现在我想创建一个图表名称的超链接,这样当我点击它时,它会将我引导到它所在的图表。

下面提到的代码正在创建一个超链接,但是当我点击它时,它会给出一条消息“参考无效”

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

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

【问题讨论】:

  • 首先去掉activate和activecell,加入这两行代码即可。

标签: excel hyperlink vba


【解决方案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)是图表地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-03
    • 2011-06-16
    • 2016-09-18
    • 2019-01-16
    • 2017-08-03
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多