返回列表 上一主題 發帖

如何大量連結sheet裡的儲存格

回復 10# mark15jill


    感謝mark15jill大的回覆

小弟的路徑裡確實少了一個反斜線,但小弟加了之後再run時,超連結的路徑依然沒改過來!

現在的語法如下:
Dim A As Range
Dim B
Dim C
Worksheets("sheet1").Activate
For Each A In Worksheets("sheet1").UsedRange
If InStr(A, "JIS ") And A.Value = "" Then
   B = "C:\11\"
   C = Dir(B, ".PDF")
   A.Hyperlinks.Add A, C & A
   End If
   Next A


明明路徑是"C:\11\",但滑鼠游標指到儲存格而秀出的小提示卻是c:\temp\.......   (小弟將這個excel檔移至c:\temp內)

好奇怪,不知哪裡出了問題?

還望各位先進不吝指導,謝謝。
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復  mark15jill


    感謝mark15jill大的回覆

小弟的路徑裡確實少了一個反斜線,但小弟加了之後再 ...
syuan 發表於 2012-11-6 12:11



    明明路徑是"C:\11\",但滑鼠游標指到儲存格而秀出的小提示卻是c:\temp\.......   (小弟將這個excel檔移至c:\temp內)


你檔案在 temp 還是  11底下..

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

本帖最後由 mark15jill 於 2012-11-6 15:13 編輯

以下程式分兩部份
1.列出 c:\11\ 副檔名為 " .tif  "的檔案
2.依照所列出名稱  +以連結
  1. Private Sub CommandButton1_Click()
  2.     With 工作表1
  3.     u = 1
  4.     k = 1
  5. '此區域列表
  6.             Dim mFile As String
  7.             mFile = Dir("C:\11\*.tif")
  8.             Do While mFile <> ""
  9.                
  10.                 Cells(u, 1) = mFile
  11.                 mFile = Dir()
  12.                 u = u + 1
  13.                
  14. '此區域超連結
  15.                 With Worksheets(1)
  16.                     .Hyperlinks.Add .Cells(k, 1), "c:\11\" & Cells(k, 1)
  17.                 End With
  18.                 k = k + 1
  19.             Loop
  20.             
  21.     End With
  22. End Sub
複製代碼

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 12# mark15jill


    你檔案在 temp 還是  11底下..

回覆mark15jill大,

小弟想要被連結的檔案放在C:\11底下,而excel檔則是放在C:\temp底下

因為小弟想測試如果EXCEL檔放置在別目錄下時,那超連結是否仍然可以連結到檔案。

但目前以小弟寫的那一段語法看來,路徑並沒辦法改過來。
錢是很寂莫的,所以會想辦法聚在一起!

TOP

本帖最後由 mark15jill 於 2012-11-6 17:15 編輯
回復  mark15jill


    你檔案在 temp 還是  11底下..

回覆mark15jill大,

小弟想要被連結的檔案 ...
syuan 發表於 2012-11-6 17:07


Excel 檔案 (來源) 和 被連結檔案(目的)
不用放在一起也可以
只要路徑改掉即可..

原始設定
PDF檔案在 C:\11\
Excel檔案在 C:\temp

基本上除非 程式碼 有將PDF 和 Excel 歸類同資料夾底下
不然的話  Excel檔案所在不用理會 ( 路徑指向須正確)
若 PDF 檔案 原本從 C:\11\ 改成 C:\99\
只須將指向C:\11\  改成 C:\99\

就好比
小學生上學
學校是固定地點
但小學生可能因搬家而導致地址不同

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

本帖最後由 syuan 於 2012-11-6 22:26 編輯

回復 15# mark15jill


    感謝mark15jill大的回覆

小弟不死心又再試了一下這段語法,結果發現該段語法仍無法導正路徑。

明明語法寫著B="C:\11:\",但將EXCEL檔搬至別的目錄下後,在EXCEL裡並將滑鼠指到儲存格上的超連結字串所秀出的小提示,
卻秀出C:\JIS1111-1999.PDF的提示,也就是說語法裡的B="C:\11\"是無效的。
今天一整天都在試這段語法,已經想不出到底是哪裡出問題.....

小弟附上這段語法的EXCEL檔,望各位先進不吝教導。
謝謝各位


檔案如下:
Book1.rar (11.9 KB)
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 16# syuan
若B的字串目錄存在則,C = Dir(B & A)將會傳回與A相同字串否則傳回空字串
  1. Sub test()

  2. Dim A As Range
  3. Dim B
  4. Dim C

  5. Worksheets("sheet1").Activate
  6. For Each A In Worksheets("sheet1").UsedRange
  7. If InStr(A.Value, "JIS") > 0 And A.Value <> "" Then
  8.     B = "C:\11\"
  9.     A.Hyperlinks.Add anchor:=A, Address:=B & A
  10.     End If
  11.     Next A
  12. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 17# Hsieh


    感謝Hsieh大

小弟試了您的這段語法,發現儲存格會變成一整串的路徑加檔名。

只是小弟想要的是儲存格字串不變,而超連結到語法裡所指的目錄下,

如excel裡儲存格的字為JISXXXX-1999.PDF,而超連結後,儲存格的字串仍然沒變。

而使用者點擊儲存格後,即能開啟PDF檔。

請問小弟的那段語法裡,該修改為什麼呢?

以上,謝謝。
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 18# syuan


    A.Hyperlinks.Add anchor:=A, Address:=B & A, TextToDisplay:= A
學海無涯_不恥下問

TOP

回復 19# Hsieh


    回HSIEH大

小弟有加了這句語法"A.Hyperlinks.Add anchor:=A, Address:=B & A, TextToDisplay:=A"
發現還是無法讓VBA去連結路徑,路徑C:\11\依然被程式忽略過去。

小弟的程式碼如下:

Dim A As Range
Dim B
Dim C

Worksheets("sheet1").Activate
For Each A In Worksheets("sheet1").UsedRange
If InStr(A.Value, "JIS ") > 0 And A.Value <> "" Then
    B = "C:\11\"
    A.Hyperlinks.Add anchor:=A, Address:=B & A, TextToDisplay:=A
    End If
    Next A



而如果將這句裡的 If InStr(A.Value, "JIS ") > 0 And A.Value "" Then改為 If InStr(A.Value, "JIS ") > 0 And A.Value <> "" Then

那麼執行後,就會出現一個對話框,寫著"執行階段錯誤'5': 程序呼叫或引數不正確

而這句 If InStr(A.Value, "JIS ") > 0 And A.Value <> "" Then就會被程式反黃起來。

小弟目前已經卡關了,已經不知道該怎麼除錯。

還望各位大德協助一下,指點一下小弟看看是哪裡出問題。

感謝各位。
錢是很寂莫的,所以會想辦法聚在一起!

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題