我编写了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
是找到单词的范围。
答案 0 :(得分:2)
这里的问题是.Cells(i,0)
。
行/列编号以1
而不是0
开头,因此列0
不存在,因此会出现错误。还要确保i
是>0
。
我强烈建议避免使用.Activate
和ActiveSheet
来代替它们的名称来引用您的工作表。您可能会从阅读中受益
How to avoid using Select in Excel VBA。
这个……
Worksheets("Sheet3").Activate
With ThisWorkbook.ActiveSheet.Range("D2")
可以写成…
With ThisWorkbook.Worksheets("Sheet3").Range("D2")