Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
超链接。添加VBA_Vba_Excel_Hyperlink - Fatal编程技术网

超链接。添加VBA

超链接。添加VBA,vba,excel,hyperlink,Vba,Excel,Hyperlink,我在用VBA编程。我想使用hyperlink创建超链接。添加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:=ma

我在用VBA编程。我想使用
hyperlink创建超链接。添加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张工作表。 重点是:现在我想要一个目录。对于每一页,在主页中有一个链接

变量:

  • rowTablecontent-->内容表顶部的行
  • 内容表左侧的colTablecontent-->列
  • 输入文件上的rowNumb-->行计数器
我在另一个程序中使用了相同的代码,它在那里工作,所以我不知道我做错了什么

有人知道会出什么问题吗

从评论中复制的重要信息

在我的项目中,我有4个输入文件/工作表。它在那里工作。但是在自动创建的工作表上,它不工作


我测试了这个,它在Excel2007上运行,你可以试试吗

编辑以接近您的问题。 这允许从activesheet导航到具有行索引功能的工作表


可以使用其他参数调用sofMacro20000463()。

因为您没有提到您将遇到的错误。可能会有很多错误。其中一些错误是

  • Activesheet不是您认为的那个
  • 所选内容不是范围
  • 工作表不存在
  • rowNumb不是有效的数字
  • 工作表/工作簿可能受到保护(谢谢Sam)
  • 试试这个

    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
    

    我没有做任何错误处理。我相信你会处理好的。

    Rownum
    中的值是多少?确保有索引的工作表存在。什么不起作用?你能更具体一点吗?你收到错误消息了吗?是什么?你有多少工作表?@Santosh它有exist@mehow当我是克莱克king在链接上有一个警告:“Bezug ist ungültig”(英文:“引用无效”)而且我有足够的工作表。我不认为
    rowNumb
    实际上是一个行号。它被用作一个工作表索引。它的名称很糟糕。@Sam不,它是一个行号,但来自另一个工作表。@jacouh我不明白你的意思。@jacouh好的。但是你的例子不起作用。在我的函数中,我把rowNumb作为参数。其余的都是相同的参数s我已经有了。@jacouh好的。它在excel2010上不起作用…@Sam我怎样才能检查我的工作表是否受到保护?@SiddharthRout是的。在我的项目中,我有4个输入文件/工作表。它可以工作。但是在自动创建的工作表上,它不起作用。键盘组合ATL+t+P+P(我有office 2010).@SiddharthRout“Bezug ist ungültig”(英文:“引用无效”)@SiddharthRout我在锚点使用范围或单元格有关系吗?@SiddharthRout谢谢你的帮助。但它仍然不起作用。总是一样的错误:引用无效
    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
    
    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