【发布时间】:2023-02-05 21:29:22
【问题描述】:
我试图让代码首先检查我所在的工作表中是否选择了单个单元格,然后检查工作簿中是否存在一个工作表,其值与所选单元格中的值相同。
如果满足这些条件,我将尝试在选定的单元格中创建一个超链接,该超链接指向具有相同名称/值的工作表。
例如,如果我选择其中包含值“1000”的单元格 (A1),并且有一个名为“1000”的工作表,我希望代码在单元格 A1 中创建一个指向名为“1000”的工作表的超链接。
我尝试了以下代码,它给了我“运行时错误'5':这行代码中的过程调用或参数无效;
selectedCell.Hyperlinks.Add Anchor:=selectedCell, Address:="", SubAddress:=selectedCell.Value & "!", TextToDisplay:=selectedCell.Value
Sub CreateHyperlinkToSheet()
Dim selectedCell As Range
Set selectedCell = Selection
If selectedCell.Count <> 1 Then
MsgBox "Please select a single cell.", vbExclamation
Exit Sub
End If
If Not SheetExists(selectedCell.Value) Then
MsgBox "No sheet exists with the name '" & selectedCell.Value & "'.", vbExclamation
Exit Sub
End If
selectedCell.Hyperlinks.Add Anchor:=selectedCell, Address:="", SubAddress:=selectedCell.Value & "!", TextToDisplay:=selectedCell.Value
End Sub
Function SheetExists(sheetName As String) As Boolean
On Error Resume Next
SheetExists = (Len(Sheets(sheetName).Name) > 0)
On Error GoTo 0
End Function
【问题讨论】:
-
selectedCell.Hyperlinks.Add Anchor:=selectedCell, Address:="", SubAddress:="'" & selectedCell.Value & "'!A1", TextToDisplay:=selectedCell.Value -
尝试用您的代码替换,不幸的是得到了相同的错误消息。
-
我编辑了我的评论(因为我在最后省略了
.Value中的最后一个“e”)——目前的语法是有效的语法 -
仍然收到相同的错误消息,调试器将我指向这行代码。
-
好的,这是因为您的标签名称是一个数字...