JP *_*use 1 excel vba loops hyperlink excel-vba
此代码用于在当前工作表上找到与"主"工作表上的单元格对应的单元格,然后插入在两个单元格之间双向工作的超链接.两个超链接上显示的实际文本应该是在"主"表单上的单元格中找到的数字值.
我一直遇到两个问题:
一个.'此属性或方法不支持对象'错误(行位置如下所示)
湾 '将超链接插入正确的坐标但在当前工作表上,而不是'主'
我在网上看的所有例子都使用了sheet.hyperlink.add所以我很困惑为什么我使用相同的语法收到这个错误
到目前为止,这是我的代码
Sub hyperlinkinsert()
Dim Sh As Worksheet
Dim r As Range
Dim R2 As Range
Dim w As Range
Dim W2 As Range
Dim S1 As String
Dim i As Integer
i = 0
For Each Sh In ThisWorkbook.Worksheets
i = i + 1
If i > 3 Then
S1 = Sh.Cells(1, 1).Text
Set r = Sh.Cells.Find(What:="Chosen Value")
If Not r Is Nothing Then
Set R2 = r.Offset(0, 1)
Set w = Sheets("Main").Cells.Find(S1)
If Not w Is Nothing Then
Set W2 = w.Offset(0, 2)
R2.Formula = "=Index('Main'!H12:H284,Match(A1,'Main'!F12:F284,0))"
'**** ERROR MSG OCCURS HERE ****
Sh.Hyperlinks.Add Anchor:=R2, Address:="", _
SubAddress:=Sheets("Main").W2, TextToDisplay:=R2.Value
Sheets("Main").Hyperlinks.Add Anchor:=Sheets("Main").W2, _
Address:="", SubAddress:=R2, TextToDisplay:=Sheets("Main").W2.Value
End If
End If
Set r = Nothing
Set R2 = Nothing
Set w = Nothing
Set W2 = Nothing
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
您的代码中存在两个问题
使用Range对象时,它已包含工作表上下文,例如,而不是Sheets("Main").W2仅使用W2
的Hyperlinks.Add方法,SubAddress参数必须是一个地址字符串,包括工作表参考.所以例如而不是SubAddress:=R2使用SubAddress:=R2.Address(External:=True)
把它们放在一起,你的超链接代码应该是
Sh.Hyperlinks.Add Anchor:=R2, Address:="", _
SubAddress:=W2.Address(External:=True), TextToDisplay:=R2.Value
Sheets("Main").Hyperlinks.Add Anchor:=W2, Address:="", _
SubAddress:=R2.Address(External:=True), TextToDisplay:=W2.Value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |