excel - `Range.Hyperlink.Shape` 有什么作用?
问题描述
我理解,这Shape.Hyperlink
是与形状关联的超Shape.Hyperlink.Follow
链接,并在 Web 浏览器中打开并显示超链接,就像我在形状上单击鼠标左键一样。
问:但是Range.Hyperlink.Shape
,当我为它分配一些形状时,它会做什么?
它似乎是与超链接相关的形状......
当我将鼠标悬停在超链接的文本或其他内容上时,它会弹出形状吗?
对于加里的:
Sub DummySub(rng As Range, shp As Shape)
rng.Hyperlinks.Add rng, "http://microsoft.com", "", "Hint"
rng.Hyperlinks(1).Shape = shp
End Sub
解决方案
对于工作表形状,您可以添加Link
. 右键单击它或在 VBA 代码中。您可以在Existing file or web Page
、或之间Place in this Document
进行选择。Create new Document
E-mail-Address
如果您选择“现有文件或网页”并为其提供网页地址,它将成为一个超链接。
但是Range.Hyperlink.Shape
在VBA中没有意义,恐怕......
VBA中Hyperlink
不存在 Range 属性。只有Hyperlinks
. Hyperlink.Shape
是的...
请测试下一个代码:
Sub testRangeHiperlynk()
Dim HypShape As Shape
Set HypShape = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 300, 160, 100, 20)
HypShape.Name = "testRect"
HypShape.TextFrame.Characters.text = "Go to Google"
ActiveSheet.Hyperlinks.aDD Anchor:=HypShape, address:="http://www.google.com", SubAddress:="GoToGoogle!A1"
Debug.Print ActiveSheet.Shapes("testRect").Hyperlink.Shape.Name
ActiveSheet.Shapes("testRect").Hyperlink.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
End Sub
它创建一个矩形,将其命名为“textRect”,在上面写一些东西,然后在 A1 中创建一个(某种)超链接,但参考新创建的形状,targeting Google.com
。
然后查看HypShape.Hyperlink.Shape.Name
立即窗口中返回的内容以及使用定义的形状如何Hyperlink.Shape.Fill
着色...
但Range.Hyperlink.Shape
在 VBA 中不存在 :)
编辑:该属性可以更聪明地使用。运行此代码(在第一个代码之后),您将能够根据工作表超链接设置形状:
Sub testHypShape()
Dim H As Hyperlink, sh As Shape
For Each H In ActiveSheet.Hyperlinks
If H.Shape.Name = "testRect" Then Set sh = H.Shape: Exit For
Next
sh.Fill.ForeColor.RGB = RGB(0, 225, 225)
End Sub
推荐阅读
- html - 如何删除边框
- reactjs - 无法弄清楚这段代码中缺少什么
- laravel - vue-router'router-link'没有创建链接
- sql - 跨数据库表中的行验证给定条件
- excel - 如何将表格中的单元格值传递给组合框?
- ssl - NGINX - SSL 握手时关闭连接,同时 SSL 握手到上游
- amazon-web-services - 使用 MySQL 在 AWS EC2 前面部署 AWS Application Load Balancer (ALB) (3306)
- r - 重命名 daframe 列名
- microsoft-teams - Microsoft Teams 会议通过 Graph API 授权问题:403 Forbidden
- powershell - 有没有办法根据使用 PowerShell 修改的日期重命名文件?