excel - Excel 仅使用 CTRL + 左键单击超链接
问题描述
单击单元格时,我不喜欢默认的超链接。我想对其进行调整,以便您CTRL
在单击单元格时必须按下以跟随超链接。
我在 SU https://superuser.com/a/739899/465645上找到了这篇文章,它有一个好主意,但使用了“公式”,并且在评论中有这样的内容:
@工程师吐司
我认为 VBA 是唯一的方法。不过,我建议您不必使用 HYPERLINK 功能。您还可以使用 Target.Hyperlinks(1).Address (带有错误捕获)来确定单元格是否具有超链接
我的超链接不是答案中所述的“公式”方式,但我喜欢这个总体思路。有没有一种方法可以使用class module
withapp level events
来观察何时单击单元格并包含超链接并查看用户是否CTRL
按下并相应地遵循超链接?
奖励:当您将鼠标悬停在超链接上时,我如何调整显示的文本以准确说明 CTRL + 单击打开超链接。
来自苏的回答:
我如何做到这一点:在第二部分中使用 URL 设置超链接:
=HYPERLINK("","http://example.com")
在 VBA 编辑器中创建一个模块:
Declare Function GetKeyState Lib "User32" (ByVal vKey As Integer) As Integer
Global Const CTRL_KEY = 17
然后工作表代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Error1
If Left(Target.Formula, 10) = "=HYPERLINK" Then
If GetKeyState(CTRL_KEY) < 0 Then 'Check if CTRL is held in
Application.EnableEvents = False
ThisWorkbook.FollowHyperlink Mid(Target.Formula, 16, Len(Target.Formula) - 17)
Application.EnableEvents = True
End If
End If
Exit Sub
Error1:
Application.EnableEvents = True
End Sub
更新:我有一个攻击计划,但我需要一些时间来整理它。在打开链接之前“捕获”超链接点击是不可能的。因此,唯一可行的方法是让我将页面中的所有超链接转换为“第二部分”中的超链接,然后将实际超链接设置为对单元格本身的引用,然后我可以修改上面的代码.
解决方案
推荐阅读
- android - 如何立即开始执行 Kotlin Coroutine
- ios - swift 4.2如何在没有情节提要的情况下进入主页?
- angular - 构造函数中的函数不应在返回 Angular 时加载
- css - CSS边距问题 - Wordpress
- servicestack - 在 Servicestack 登录中禁用获取关键字
- excel - 使用 Winforms 控件将 Excel 嵌入 WPF
- filter - Google 折线图 CategoryFilter
- java - 无法连接到 smtp 问题
- r - 在闪亮的 tmap 中使用 clickEvents
- qml - QML - 如何创建 tableview 项目的拖放行为