簡體   English   中英

我可以使用 VBA 使 Excel 忘記它跟隨超鏈接嗎?

[英]Can I use VBA to make Excel forget that it followed a hyperlink?

我正在使用條件格式來影響某些包含表格中超鏈接的單元格的字體顏色。 但是,當我點擊超鏈接時,它會覆蓋單元格中的條件格式,這是不希望的。

如果當前單元格正上方的單元格具有相同的值,則條件格式實質上是使文本不可見。 它使用在整個范圍 ( $C$6:$C$24 ) 中應用的公式 ( =C5=C6 )。

我嘗試過的事情:

  • 關閉並重新打開文件可修復該問題,因為它將所有跟隨的超鏈接重置為正常超鏈接。 但是,我不想一直關閉並重新打開。
  • 我可以使用Worksheet_FollowHyperlink事件來改變字體顏色,但是當我對表格進行不同的排序時(從而改變條件格式的行為方式),條件格式仍然被禁用——現在有利於以編程方式應用的字體顏色。

這個問題本質上是我上一篇文章的更新( 有沒有辦法讓條件格式忽略 FollowedHyperlink 標志? )。 我不再使用HYPERLINK公式,因為這不允許我使用答案中提供的Worksheet_FollowHyperlink選項。

我還通讀了提供的超級用戶線程( https://superuser.com/questions/728825/how-do-i-prevent-excel-from-changed-the-color-of-a-clicked-link/819931 ),它提供了一些其他有趣的途徑,但並沒有讓我到達我需要的地方。 我現在特別問我是否可以重置 Excel 的記憶,了解哪些超鏈接已被跟蹤。

這是我想要的,無論是在點擊鏈接之前還是之后:

在此處輸入圖片說明

這是單擊鏈接后出現的不良行為:

在此處輸入圖片說明

類似以下內容似乎可以保持超鏈接的樣式不變 - 基本上只需將超鏈接重新添加到同一個單元格:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    With Target
        .Range.Hyperlinks.Add .Range, .Address, .SubAddress, , .TextToDisplay
    End With
End Sub

ScreenTip引起了問題,所以我故意省略了它 - 我測試它的超鏈接沒有屏幕提示。

事實上,如果這樣做的工作為你的情況,以使其更加堅固我將考驗長度SubAddressScreenTip ,並TextToDisplay試圖在使用之前Hyperlinks.Add 它們都是可選參數,單擊的超鏈接可能沒有這些屬性。

這對我有用並且不會干擾條件格式:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    With Target.Range
        .Font.Color = vbBlue
        .Font.Underline = True
    End With

End Sub

您還沒有透露您在 CF 中使用的格式,但我猜它正在將文本顏色設置為白色。

隱藏單元格內容的更好的通用格式是;;; . 如果您在 CF 中使用它,則后續超鏈接將保持隱藏狀態

所以,這是我剛剛想出的解決方法......終於。 仍然不是最佳答案,並且仍然沒有回答如何讓 Excel 忘記它遵循特定鏈接的具體問題,所以我仍然希望看到更好的答案。

但這完成了我想做的事情......在大多數情況下。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    Target.Range.Style = "Followed Hyperlink"

End Sub

使用上面的代碼將樣式設置為“Followed Hyperlink”,出人意料地做到了這一點。 正如之前的評論中所指出的,Excel 並未使用這種樣式,即使它看起來如此。 使用 VBA 手動設置它顯然允許條件格式起作用。

缺點:關閉和打開工作簿不再重置顏色。 一種解決方法是將“Followed Hyperlink”樣式更改為與“Hyperlink”樣式相同,但是整個工作簿中的任何鏈接都不會具有紫色。 所以,這仍然不是最佳答案。

編輯:我應該明確指出,使用此選項會應用“跟隨超鏈接”樣式(紫色文本)。 但是,它不會覆蓋條件格式,這是問題的最大部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM