首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hyperlinks(1).address仅返回部分地址

hyperlinks(1).address仅返回部分地址
EN

Stack Overflow用户
提问于 2017-07-21 22:13:51
回答 2查看 2.8K关注 0票数 5

我正在编写以下代码,它将根据单击链接时链接是否正常工作来重新格式化包含链接的单元格:

代码语言:javascript
复制
Private Sub worksheet_followhyperlink(ByVal HL As HYPERLINK)
Dim linkReq As Object
Dim linkStatus As Integer

Application.ScreenUpdating = False
On Error GoTo linkError
Set linkReq = New MSXML2.XMLHTTP60
With linkReq
    .Open "GET", HL.address, False
    .Send
End With
linkStatus = linkReq.Status

If linkStatus = 404 Then HL.Parent.Interior.Color = rgbPink
If linkStatus <> 404 Then HL.Parent.Interior.Pattern = xlNone

If HL.Parent.Interior.Pattern = xlNone Then GoTo exitSub
Application.ScreenUpdating = True
MsgBox("Link is broken")

exitSub:
Application.ScreenUpdating = True
Exit Sub

linkError:
linkStatus = 404
Resume Next
End Sub

代码昨天运行得很好!但现在,它将所有内容都返回为“404”,并将单元格标记为粉红色,即使链接有效。调试显示,HL.address的值是"folder/Document.pdf“而不是"https://website/folder/Document.pdf”。此excel文档通过sharepoint托管在"https://website“上。

由于截断,代码无法工作。

有没有一种方法可以从excel超链接中提取完整的url,而不会被截断,而不管url的大小?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 20:31:10

Excel似乎正在将您的超链接地址从绝对地址更改为相对地址。

您可以尝试通过更改所谓的“超级链接基址”来强制绝对地址。要执行此操作,请转到:文件>信息>显示所有属性>超链接基础(屏幕右侧),并将其更改为"x“。

来自Microsoft支持站点的参考:

https://support.microsoft.com/en-us/help/903163/how-to-create-absolute-hyperlinks-and-relative-hyperlinks-in-word-docu

(文章介绍了MS Word的解决方案,但它也应该在MS Excel中工作)

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2019-10-04 21:59:16

excel中的range对象有第二个属性"Subaddress“。使用子地址功能获取地址的其余部分,如下所示

代码语言:javascript
复制
range.Hyperlinks(1).Address + range.Hyperlinks(1).SubAddress

在我的例子中,我必须在Address和Subaddress之间添加额外的字符。请务必检查如何使用地址和子地址形成完整的URL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45239925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档