我有一個用於跟蹤工作訂單的電子表格。表格的第一列有數字,從14-0001開始,然後一直按順序繼續。這些號碼被超鏈接到他們各自工單的.XLS(例如包含14-0001個鏈接到Z:\ WorkOrders \ 14-0001-任務名稱\ 14-0001-任務名稱.xls的單元格)用於修復Excel中損壞的超鏈接的腳本
問題是,我的電腦死機了,當Excel恢復的文件中的所有超鏈接變更情況:從
**"Z:\blah blah\WorkOrders\14-****-Task Name\14-****-Task Name.xls"**
到
**"C:\Users\blahblah\WorkOrders\14-****-Task Name\14-****-Task Name.xls"**
有數百個條目,所以我希望我可以運行一個腳本來解決所有的的超鏈接。
繼承人的腳本,我發現,從我的理解是應該做我想做的上網,但是當我從VB窗口在Excel中運行該腳本,我得到「編譯錯誤:參數不可選」,它凸顯Sub CandCHyperlinx()
代碼:
Option Explicit
Sub CandCHyperlinx()
Dim cel As Range
Dim rng As Range
Dim adr As String
Dim delstring As String
'string to delete: CHANGE ME! (KEEP quotes!)
delstring = "C:\Users\***\AppData\Roaming\Microsoft\Excel\"
'get all cells as range
Set rng = ActiveSheet.UsedRange
'ignore non hyperlinked cells
On Error Resume Next
'check every cell
For Each cel In rng
'skip blank cells
If cel <> "" Then
'attempt to get hyperlink address
adr = cel.Hyperlinks(1).Address
'not blank? then correct it, is blank get next
If adr <> "" Then
'delete string from address
adr = Application.WorksheetFunction.Substitute(adr, delstring)
'put new address
cel.Hyperlinks(1).Address = adr
'reset for next pass
adr = ""
End If
End If
Next cel
End Sub
這甚至合適的劇本?我究竟做錯了什麼?
'替代'是什麼突出與錯誤,這是因爲它需要三個參數不是兩個。 [查看此鏈接](http://msdn.microsoft.com/en-us/library/office/ff194878%28v=office.15%29.aspx)以獲取更多信息。試試這個:'adr = Application.WorksheetFunction.Substitute(adr,delstring,「C:\ Users \」)' – 2014-12-02 20:23:03
你可以不應用Find/Replace嗎? – pnuts 2014-12-02 21:03:53
@pnuts我以爲也是'Find'在超鏈接地址上不起作用,或者我應該說,它在VBA之外不起作用。 – 2014-12-02 21:20:20