python - 使用与 HYPERLINK 链接的颜色突出显示目标单元格

标签 python excel openpyxl

我已经实现了一个功能,其中有跨多行的动态超链接。这些 HYPERLINKS 指向同一工作簿中不同工作表的不同单元格。当我单击任何超链接时,我可以导航到该目标单元格。

现在,默认情况下,该单元格以粗黑色边框突出显示。有什么方法可以使该单元格在单击 HYPERLINK 后突出显示时以特定颜色显示。

最佳答案

大问题!我们可以使用工作表事件来处理这个问题。我觉得适合使用的事件是follow超链接事件。老实说,不确定如何通过 python 进行设置。但无论如何,工作很有趣!祝你好运。

代码如下:

事件本身,在包含您的超链接的工作表中:

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    AlterHyperLinkedRanged.Main Target
End Sub

名为 AlterHyperLinkedRanged 的常规模块
Option Explicit

Sub Main(Target As Hyperlink)

    Dim ParsedSubAddress As ParsedSubAddress
    Set ParsedSubAddress = New ParsedSubAddress

    ParsedSubAddress.Parse Target.Subaddress

    Dim HyperLinkedRange As Range
    Set HyperLinkedRange = ParsedSubAddress.Worksheet.Range(ParsedSubAddress.Address)

    HyperLinkedRange.Borders.Color = RGB(0, 255, 0)

End Sub

我们创建的类用于存储由 target.subaddress 使用的数据,也就是我们希望更改其边界的范围。我创建了一个新对象来处理解析和存储这些数据。我正在即时执行此操作,请随时改进!此代码将进入类模块。

名为 ParsedSubAddress 的类:
Option Explicit

Private Type Attrib
    Address As String
    WS As Worksheet
End Type

Private this As Attrib

Public Property Get Address() As String
    Address = this.Address
End Property

Private Property Let Address(value As String)
    this.Address = value
End Property

Public Property Get Worksheet() As Worksheet
    Set Worksheet = this.WS
End Property

Private Property Let Worksheet(value As Worksheet)
    this.WS = value
End Property

Function Parse(ByVal Subaddress As String)
    If Not (InStr(Subaddress, "!") > 0) Then
        this.Address = Subaddress
        Set this.WS = ActiveSheet
    Else
        this.Address = Mid(Subaddress, InStr(Subaddress, "!") + 1, Len(Subaddress))
        Set this.WS = Sheets(Mid(Subaddress, 1, InStr(Subaddress, "!") - 1))
    End If
End Function

关于python - 使用与 HYPERLINK 链接的颜色突出显示目标单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53975110/

相关文章:

python Pandas : list of sublist: total items number

excel - 如何删除VB数组中的项目?

c# - 加载 Office.dll 时出错 COMException : 'Errorloading type library/DLL'

python - 将新列写入现有的 xlsx 文件

python - 在 openpyxl 条件格式公式中使用多个单元格

python - 属性错误 : 'Worksheet' object has no attribute 'hide_gridlines'

python - 从 shell 脚本捕获值并在 Python 中使用它,而不使用子进程

python - 在 Python 中创建假数据

node.js - 如何追加到nodejs中的excel文件

python - 获取命名日志级别的列表