使用 vba 打开链接而不使用 FollowHyperlink
Open links using vba without FollowHyperlink
在我的 vba 过程中,我有 ActiveWorkbook.FollowHyperlink Address:=link
但是“Link”通常对于函数来说太大而无法使用,因为“link”可以保存字符串值和一小段一样大,这导致我出现 运行 次错误。它适用于 links,字符串大小较小,但字符串较大,如果失败并出现以下确切错误
是否有另一种使用 vba 打开 link 的方法可以处理大 url?
请尝试使用 API。它应该接受 URL 最大字符串长度 (2048)。
- 复制标准模块顶部的下一个代码(在声明区域):
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
- 复制已复制 API 函数的标准模块中的下一个代码:
Sub testOpenURL
ShellExecute 0&, vbNullString, "http://www.your big string representing URL", vbNullString, vbNullString, 5
End Sub
在我的 vba 过程中,我有 ActiveWorkbook.FollowHyperlink Address:=link
但是“Link”通常对于函数来说太大而无法使用,因为“link”可以保存字符串值和一小段一样大,这导致我出现 运行 次错误。它适用于 links,字符串大小较小,但字符串较大,如果失败并出现以下确切错误
是否有另一种使用 vba 打开 link 的方法可以处理大 url?
请尝试使用 API。它应该接受 URL 最大字符串长度 (2048)。
- 复制标准模块顶部的下一个代码(在声明区域):
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
- 复制已复制 API 函数的标准模块中的下一个代码:
Sub testOpenURL
ShellExecute 0&, vbNullString, "http://www.your big string representing URL", vbNullString, vbNullString, 5
End Sub