我在用VBA编程。我想使用hyperlink.add对象的ActiveSheet方法创建超链接,但它不起作用。
这是我的代码:
'set the link
Dim mainsheet As Worksheet
Dim ws As Worksheet
Set mainsheet = ActiveWorkbook.Sheets("Main")
Set ws = ActiveWorkbook.Sheets(rowNumb + 2)
mainsheet.Hyperlinks.Add Anchor:=mainsheet.Range(rowTablecontent + rowNumb, colTablecontent + 3), _
Address:="", _
SubAddress:=ws.Name & "!A1", _
TextToDisplay:="Link"代码描述:
我有一个主表,上面有一个目录和一个启动宏的按钮。启动宏时,程序导入4个文件(每个文件有一个工作表,等于主工作簿中的一个工作表)。有了这4个文件的信息,大约有500张将被生成。关键是:现在我想要一个目录。对于每个工作表,主表中有一个链接。
变量:
我在另一个程序中使用了相同的代码,所以我不知道我做错了什么。
有人知道会出什么问题吗?
从注释中复制的重要信息
在我的项目中,我有4个输入文件/工作表。在那起作用了。但是在自动创建的工作表上,它不起作用。
发布于 2013-11-15 13:01:12
因为你没有提到你所犯的错误。可能会有很多错误。其中一些是。
尝尝这个
Option Explicit
Sub Sample()
Dim rowNumb As Long
Dim ws As Worksheet
'~~> Change this to the relevant number
rowNumb = 1
If TypeOf Selection Is Range Then
On Error Resume Next
Set ws = ThisWorkbook.Sheets(rowNumb + 1)
If Err.Number <> 0 Then
MsgBox "Sheet doesn't exist"
Exit Sub
End If
On Error GoTo 0
ThisWorkbook.ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:="", _
SubAddress:=ws.Name & "!A1", _
TextToDisplay:="Link"
Else
MsgBox "InValid Range Object"
End If
End Sub从评论中跟进
但是在自动创建的工作表上,它不起作用。
你错过了我的第一点。Activesheet is not the one you think it is.
下面是如何向新创建的文件添加超链接的示例。本演示演示如何向新创建的文件的Sheet1 A1添加超链接。超链接将处理新创建的文件的Sheet2 A1。
Sub Sample()
Dim wb As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Set wb = Workbooks.Add
Set ws1 = wb.Sheets("Sheet1")
Set ws2 = wb.Sheets("Sheet2")
ws1.Hyperlinks.Add Anchor:=ws1.Range("A1"), _
Address:="", _
SubAddress:=ws2.Name & "!A1", _
TextToDisplay:="Link"
End Sub我不会做任何错误处理。我相信你能处理好的。
发布于 2013-11-15 12:59:23
我测试了这个,它在Excel 2007上工作,你可以试试吗?
编辑以接近您的问题。
Sub sofMacro20000463(ByVal rowNumb)
'
' Dim rowNumb
'
' rowNumb = ActiveCell.Row
'
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:=Sheets(rowNumb + 1).Name & "!A1", _
TextToDisplay:="Link"
'
End Sub
Sub sofMacroDoIt()
'
Dim rowNumb
'
rowNumb = ActiveCell.Row
'
sofMacro20000463 rowNumb
'
End Sub这允许导航到工作表中的活动表中的行索引函数。
可以使用其他参数调用sofMacro20000463()。
https://stackoverflow.com/questions/20000463
复制相似问题