2013-07-08 78 views
3

我有幾百個標題的列表,每個條目有幾列(即名稱,日期等)。在我添加的名稱中,只是說「A」,「B」,「C」等,因爲它使得滾動瀏覽文檔,查找特定名稱,知道位置 - 例如 - 「H」開始。在添加數據或排序列表後維護超鏈接

隨着列表的增長,我添加了超鏈接到文檔的頂部,以便能夠跳轉到A/B/C/etc.-條目。但是,當添加新數據並對其進行排序時,或者按日期或其他方式對列表進行排序時,超鏈接「轉到:A」(作爲示例)會與原始單元格A1保持鏈接 - 儘管該單元格的數據(實際的文本「A」)現在在A42中。

無論如何要維護超鏈接,通過排序和[主要]添加新的數據?

回答

1

A1中的公式是=HYPERLINK($I1,"Go to: "&H1)將被適當複製下來。

SO17535313 example revised

(= MATCH在作爲被搜索的字母相同的範圍內「不喜歡」的超鏈接的細胞。)

可選地在ROW1(但仍然在新ColumnA)和複製下來,而不需要ColumnH:I:

=HYPERLINK("[SO17535313.xlsx]Sheet1!"&"B"&MATCH(CHAR(64+ROW()),B:B,0),"Go to: "&CHAR(64+ROW())) 
+0

非常感謝,通過添加新數據似乎很好。但我遇到了一個奇怪的問題。它適用於「C」和下,但「A」和「B」得到「循環參考警告」。任何想法是什麼造成這個?手動輸入代碼時以及擴展系列時都會發生。 – Zinatic

+0

在添加字母表的其餘部分之後,「B」(即「轉到:B」超鏈接)解決了它自己。 「A」仍然被打破,狀態欄顯示「循環參考:H1」。 (我的清單是在A30:A106,順便說一句,我改爲代碼來反映我使用的文檔和工作表的名稱。) – Zinatic

+0

新代碼(公式?)完美工作。非常感謝您的幫助。 – Zinatic

1

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 
2
  • 保存Excel電子表格「網頁」(而不是「單個文件網頁」。)
  • 打開「網頁」,在Excel版本。
  • 對其進行排序。
  • 將其另存爲Excel電子表格。

每個鏈接都將保存在適當的單元格中。