Excel VBA:创建超链接类型不匹配

Excel VBA:创建超链接类型不匹配

我创建了一个函数,用于在工作簿中的工作表之间创建交叉引用超链接。由于某种原因,我在尝试创建超链接时收到错误 13:类型不匹配错误。

以下是创建超链接的函数:

公共函数 SearchAndLink(txtTicketNum 作为字符串、shtFromSheet 作为工作表、rngFromCell 作为范围、txtFromText 作为字符串、shtToSheet 作为工作表、txtToText 作为字符串、numFromOff 作为整数、numToOff 作为整数)作为布尔值

Dim rngToCell 作为范围

设置 rngToCell = shtToSheet.Cells.Find(What:=txtTicketNum)

如果 rngToCell 不为空则
    Sheets(shtFromSheet).Hyperlinks.添加锚点:=rngFromCell.Offset(0,numFromOff),地址:=“”,SubAddress:= _
        “'”&Sheets(shtToSheet)。名称&“'!”&rngToCell.Address,TextToDisplay:=txtFromText

    Sheets(shtToSheet).Hyperlinks.添加锚点:=rngToCell.Offset(0,numToOff),地址:=“”,SubAddress:= _
        “'”&Sheets(shtFromSheet)。名称&“'!”&rngFromCell.Address,TextToDisplay:=txtToText

    rngToCell.EntireRow.Interior.ColorIndex = -4142
    rngToCell.EntireRow.Font.Name =“Calibri”
    rngToCell.EntireRow.Font.Size = 11

    SearchAndLink = True
别的
    SearchAndLink = False
万一

结束函数

这是我创建变量并调用函数的地方:

公共子交叉引用()
Dim strRORA 作为字符串
调光滑块作为范围
Dim boolFound 作为布尔值

'设置变量来检查 RO 与未结票据
设置 rngslider = Sheets("资源订单").Range("A4")

Do While rngslider "" '当名称列有数据时继续

    ' 设置变量来检查未结票据
    strRORA = UCase(rngslider.Offset(0, 10).值)

    boolFound = SearchAndLink(strRORA, Sheets("资源订单"), rngslider, strRORA, Sheets("打开票证"), "RO", 10, 78)

我尝试手动输入工作表和范围来查找错误,但总是出现类型不匹配错误。我是否错误地使用了函数中的变量?任何帮助都将不胜感激。

答案1

我搞清楚了问题所在。我向函数传递了一个工作表对象,但超链接的方法需要指数对于工作表。我更改了函数以传递我正在使用的工作表的索引,然后它会创建超链接。

以下是新的函数调用:

boolFound = SearchAndLink(strRORA,Sheets("资源订单").Index, rngslider, "Closed", Sheets("已关闭的火灾单").Index, "RO", 11, 28)

以下是新功能:

公共函数 SearchAndLink(txtTicketNum 作为字符串、numFromSheet 作为整数、rngFromCell 作为范围、txtFromText 作为字符串、numToSheet 作为整数、txtToText 作为字符串、numFromOff 作为整数、numToOff 作为整数)作为布尔值

以下是正确的超链接代码:

Sheets(numFromSheet).Hyperlinks.添加锚点:=rngFromCell.Offset(0,numFromOff),地址:="", _
        SubAddress:="'" & Sheets(numToSheet).Name & "'!" & rngToCell.Address, TextToDisplay:=txtFromText

谢谢!

相关内容