gpt4 book ai didi

vba - 在 worksheet_change 事件之后 Excel 超链接跟随宏

转载 作者:行者123 更新时间:2023-12-04 20:41:51 26 4
gpt4 key购买 nike

我有一个 excel 表,当通过即插即用扫描仪扫描时进行条形码扫描(2D/QR 条形码格式类似于 SN1234567 7654321 PA01234-5 A B C),并将所述条形码解析为右侧的单个单元格,空格是分隔符.现在,在此解析之后,我有一个单元格使用 excel 超链接函数、Hlink 宏(如下所示)和 vlookup 函数的组合来使用解析的信息在不同的工作表上查找超链接。现在,我正在尝试编写一个宏,以便一旦扫描此条码并触发、解析工作表更改并找到超链接,就会自动单击超链接。 (我正在使用这个系统来尝试“防止”运算符(operator)无法正确输入数字的过程。)无论如何,我的工作簿的屏幕截图和我目前使用的所有代码都将在下面,请你帮帮我解决这个问题?

所述电子表格的屏幕截图

screenshot

工作表更改代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range, rng As Range

' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:A10")

'Target can be a multi-cell range, so you need to account
' for that possibility
Set rng = Application.Intersect(KeyCells, Target)

If Not rng Is Nothing Then
'prevent re-activating this sub when splitting text...
Application.EnableEvents = False
textsplit Target
Application.EnableEvents = True
End If

Exit Sub

haveError:
Application.EnableEvents = True

End Sub

解析代码:
Sub textsplit(rng As Range)
Dim c As Range, arr

For Each c In rng.Cells
If Len(c.Value) > 0 Then
arr = Split(c.Value, " ")
c.Offset(0, 1).Resize(1, UBound(arr) + 1).Value = arr
End If
Next c

End Sub

链接代码:
Function HLink(rng As Range) As String
'extract URL from hyperlink
'posted by Rick Rothstein
If rng(1).Hyperlinks.Count Then HLink = rng.Hyperlinks(1).Address
End Function

使用此公式在共享点链接单元格中查找并提取不同页面上单元格的超链接。 =HYPERLINK(HLink(INDEX(Table_owssvr[Name],MATCH(Parse!C3&"_"&Parse!D3,Table_owss vr[Name],0))),INDEX(Table_owssvr[Name],MATCH(Parse!C3&"_"&Parse!D3,Table_owssvr[Name],0)))
编辑(为清楚起见):我发布的所有这些代码当前都在工作, 我遇到的问题是自动(唯一的用户输入是将所述条形码扫描到excel中) 在列H 中生成的超链接之后。

编辑2:为了提供更多信息,我只是尝试添加此代码
ActiveWorkbook.FollowHyperlink 地址:=Range("H3").Address, NewWindow:=False, AddHistory:=True
在 textsplit 调用之后的工作表中更改子。此实现产生错误“运行时错误'-2147221014(800401ea)':无法打开指定的文件。”

我认为这个错误是由于 H3 的值是超链接函数的“友好名称”部分。这意味着当此宏尝试“单击”或跟随 H3 时,它遇到了值 4512517_PA06872-1 而不是跟随它所需的实际超链接。

最佳答案

好的,这只是您的 HLink 宏没有做正确的事情,最简单的方法是直接跟随超链接:

Sub HLink(rng As Range)
If rng(1).Hyperlinks.Count Then rng.Hyperlinks(1).Follow
End Sub

这将 自动打开您的默认浏览器以转到您的超链接的 URL/地址 .

困难的方法是引用一个 IE 应用程序并打开您在其中找到的地址然后使用它,但如果它只是打开超链接,那么该代码就足够了!

关于vba - 在 worksheet_change 事件之后 Excel 超链接跟随宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31430592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com