我完全不知道为什么我不能添加超链接来成形,但仅当其被单元内功能触发时才如此。当我从即时窗口手动运行它时,一切运行正常。另外,我手动进行操作也没有任何麻烦。
我也不知道如何在vba中编写良好的错误处理
这是示例代码。
function testCase(xlLabelName as String)
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Sheets
If shapeExist(sht, xlLabelName) Then
sht.Hyperlinks.Add Anchor:=sht.Shapes(xlLabelName), Address:="", SubAddress:="a1"
testCase = "Bingo"
End If
Next sht
End Function
从立即窗口中我得到Bingo
答案,并且在单元格中我得到#arg!
错误,这只是未执行的行。我尝试首先使用以下方式取消形状分组
Dim gshp As Shape
Dim shrng As ShapeRange
Dim tmp As String
Set gshp = sht.Shapes(getParentShape(xlLabelName))
tmp = gshp.Name
Set shrng = gshp.Ungroup
sht.Hyperlinks.Add Anchor:=sht.Shapes(xlLabelName), Address:="", SubAddress:="a1"
shrng.Regroup
shrng.name = tmp
但是它也失败了。而且仍然有即时窗口为我提供了正确答案(bingo
)所有其他操作均根据需要完成(绘画),只有这一操作失败。如果删除此有问题的行,则单元格中的响应正确。我正在尝试处理的形状是msoFreeform
用于检查形状是否存在的函数只是循环遍历工作表中的所有形状并比较名称(虽然不错,但现在可以正常工作)
提前致谢。
如果您是我,则可以为我的形状分配一个宏,以便在单击该宏时可以运行以下子:
sub hyperlinkShape
ThisWorkbook.FollowHyperlink ("C:\temp\test.xlsx")
End sub
如果要在工作簿中查找超链接,例如更改工作表,则可以编写
sub hyperlinkShape
Sheets("Desiredsheet").Select
End sub
这样,超链接不会附加到形状,而是附加到形状。单击形状可以启动子。
对于错误处理,建议您阅读几个月前发布的此线程的答案:VBA Excel简单错误处理
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句