为通过FIND函数找到的单元格创建超链接

时间:2019-02-14 09:07:34

标签: excel vba

我编写了VBA代码以在“ Sheet1”中搜索单词。单词列表在“ Sheet2”中。结果与单词和在“ Sheet1”中找到的单词的所有单元格地址一起发布在“ Sheet3”中。

例如,单元格地址被发布为“ $ B $ 26”。我希望这是到Sheet1单元格B26的超链接。

我使用了以下代码。

Worksheets("Sheet3").Activate

'Record the address of the data, in the current workbook.

     With ThisWorkbook.ActiveSheet.Range("D2")
        .Value = "Address of variable:"
        .Offset(0, -1).Value = "Variable Name"
        .Offset(0, -2).Value = "No of usages"
        .Offset(i, 0).Value = GCell.Address
        .Offset(i, -1).Value = Txt
        .Columns.AutoFit
        .Offset(i, 1).Columns.AutoFit

If GCell Is Nothing Then Exit Sub

    Sheets("Sheet3").Hyperlinks.Add Anchor:=Sheets("Sheet3").Cells(i,0), _
         Address:="", _
         SubAddress:="'" & Sheets("Sheet1").Name & "'!" & GCell.Address, TextToDisplay:="Click"

我知道

  

运行时错误'1004':应用程序定义或对象定义的错误

在上面的行中

GCell是找到单词的范围。

1 个答案:

答案 0 :(得分:2)

这里的问题是.Cells(i,0)

行/列编号以1而不是0开头,因此列0不存在,因此会出现错误。还要确保i>0


我强烈建议避免使用.ActivateActiveSheet来代替它们的名称来引用您的工作表。您可能会从阅读中受益 How to avoid using Select in Excel VBA

这个……

Worksheets("Sheet3").Activate
With ThisWorkbook.ActiveSheet.Range("D2")

可以写成…

With ThisWorkbook.Worksheets("Sheet3").Range("D2")