【问题标题】:Creating a hyperlink for a cell found by FIND function为 FIND 函数找到的单元格创建超链接
【发布时间】:2019-03-27 13:35:52
【问题描述】:

我编写了 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 是找到单词的范围。

【问题讨论】:

  • “但我在上面的行中遇到了错误” 如果不告诉 哪个 错误,这些信息是毫无用处的。还请包括相关的代码部分(一行是不够的)。使用Find 后,您检查GCell 是否为Nothing
  • 很抱歉。现已编辑。是的,我在使用 FIND 后检查 GCell 是否无内容。
  • 是的,它确实有效!非常感谢..正在检查其他所有内容!谢谢PEH..

标签: excel vba


【解决方案1】:

这里的问题是.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")

【讨论】:

  • 是的,它确实有效!非常感谢..正在检查其他所有内容!谢谢你!是的,我也取消了“.Activate”的使用。谢谢!!! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 2022-10-15
  • 2015-10-18
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多