Excel中存在一個與超鏈接和排序相關的已知錯誤。
KB214328: Hyperlinks are removed or invalid after you sort cells that contain these hyperlinks in Excel
我要指出,在我的情況,我做鏈接文件的Excel(ProjecWise)之外。
我的工作是將所有超鏈接作爲文本存儲在一列中,並使用Excel Hyperlink()函數爲另一列中的每一行生成超鏈接。當您想從外部源(如瀏覽器)粘貼超鏈接時,請選擇該單元格,然後將鏈接粘貼到功能區下方的功能框中,而不是直接粘貼到單元格中。這會給你的文本,而不是在單元格中創建超鏈接對象。
我完全不瞭解這個問題,但是從我理解Excel處理超鏈接的方式,單元格中的超鏈接以某種方式鏈接到表單對象上的超鏈接集合。當您對工作表中的行進行排序時,工作表超鏈接引用開始返回錯誤的引用。我無法找到工作表超鏈接引用的唯一'句柄',但注意到h.Parent.Top隨着排序而改變。
Public Sub ShowSheetHyperlinks()
' Use this to demonstrate the issue acknowledged here: http://support.microsoft.com/kb/214328
' Add some hyperlinks in a column of a spreadsheet and random values in a column next to it.
' Run this routine. Then sort the values by the first or second column and run this routine again.
' You may have to do this a few times, and/or copy and paste your hyperlink cells to other cells.
' Eventually you will see that the results change after the two columns are sorted.
' (You may not need two columns, but it may help to randomize the sorting.)
Dim h As Hyperlink
Debug.Print "Hyperlinks on " & ActiveSheet.Name & ": " & ActiveSheet.Hyperlinks.Count
For Each h In ActiveSheet.Hyperlinks
' After you sort the list of hyperlinks, you will notice the values in the
' three columns below. I am truncating the address to just see the last 20 characters.
Debug.Print h.TextToDisplay, h.Parent.Top, Right(h.Address, 20)
Next
End Sub
來源
2014-02-21 22:12:20
Ben
非常感謝,通過添加新數據似乎很好。但我遇到了一個奇怪的問題。它適用於「C」和下,但「A」和「B」得到「循環參考警告」。任何想法是什麼造成這個?手動輸入代碼時以及擴展系列時都會發生。 – Zinatic
在添加字母表的其餘部分之後,「B」(即「轉到:B」超鏈接)解決了它自己。 「A」仍然被打破,狀態欄顯示「循環參考:H1」。 (我的清單是在A30:A106,順便說一句,我改爲代碼來反映我使用的文檔和工作表的名稱。) – Zinatic
新代碼(公式?)完美工作。非常感謝您的幫助。 – Zinatic