- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一系列单元格,其数据格式如下:
“AAA;BBB;CCC”
理想情况下,我必须为 AAA、BBB 和 CCC 每个创建一个单独的超链接。由于 Excel 只允许每个单元格有一个超链接,因此我认为可以拆分单元格文本,并在单击虚拟超链接时使用“ShellExecute”打开三个网页。
我在单元格中创建了一个指向“www.google.com”的超链接,并在“FollowHyperlink”事件处理程序中编写了以下代码:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim strArray() As String
Dim strSamp As String
strArray() = Split(ActiveCell.Text, ";")
For i = LBound(strArray) To UBound(strArray)
strSamp = "www." + strArray(i) + ".com"
lSuccess = ShellExecute(0, "Open", strSamp)
MsgBox (strSamp)
Next i
End Sub
每次我单击单元格时,浏览器都会打开 Google 并且不会显示消息框。
我无法弄清楚我的逻辑哪里出了问题。如果你们能给我任何见解,我将不胜感激。
编辑:
我在新的工作表中重写了代码,并且代码可以正常运行。现在正在显示消息框,并且正在浏览器中打开各个超链接。但除了单独的链接之外,虚拟链接(在本例中为 Google)也会打开。如何阻止它打开?
最佳答案
我使用 Worksheet_BeforeDoubleClick
事件来执行此类操作。
假设文本位于单元格 A1 中。试试这个。
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal LpszDir As String, ByVal FsShowCmd As Long) As Long
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim strArray() As String, strSamp As String
Dim i As Long
If Not Intersect(Target, Range("A1")) Is Nothing Then
strArray = Split(Target.Value, ";")
For i = LBound(strArray) To UBound(strArray)
strSamp = "www." + strArray(i) + ".com"
ShellExecute 0, "Open", strSamp, "", "", SW_SHOWNORMAL
DoEvents
Next i
Cancel = True
End If
End Sub
编辑:
糟糕,我忘了提到您需要双击单元格 A1
才能运行此代码:p
注意:如果您仍想使用 Worksheet_FollowHyperlink()
方法,则将单元格超链接到其自身而不是网站。这不会启动网站并显示您的消息框。
关于vba - FollowHyperlink 事件 - 如何阻止链接打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450146/
当我将 FollowHyperlink 事件与超链接功能一起使用时,它不会触发: =IF(C8505=0;IF(F8505=0;"";IF(H8505=0;"Nothing";IF(G8505="Me
我的工作表在 A 到 Z 列中包含数据。第 13 到 49 行中有超链接,可跳转到下面各行中的特定单元格。例如,第 13 行中的超链接将跳转到第 229 行。 超链接都很好,直到我在另一台具有不同分辨
我有一系列单元格,其数据格式如下: “AAA;BBB;CCC” 理想情况下,我必须为 AAA、BBB 和 CCC 每个创建一个单独的超链接。由于 Excel 只允许每个单元格有一个超链接,因此我认为可
我正在使用 FollowHyperlink 方法打开 pdf 文件,如下所示: Sub Sample() ActiveWorkbook.FollowHyperlink "C:\MyFile.p
所以,这基本上就是我想要做的。我在从 MSSQL 生成的文件中有一列员工编号。我想在 URL 所在的单元格中创建一个函数,http://www.someplace.com/employee.php?I
所以一点背景 - 我已经使用 VBA 几个月来编写一个程序来加快我所做的一些工作。这涉及打开文件,目前我一直在使用 Autocad 使用以下子打开文件: Sub OpenAutocadFile(Aut
我是一名优秀的程序员,十分优秀!