2015-02-06 230 views
0

我在一個文件夾中有許多pdf和excel工作表。命名順序一致。超鏈接列= Excel宏

工作表將被命名爲Apple。 Pdfs將被命名爲Apple_1,Apple_2

我想要一個excel宏來工作 獲取活動工作表名稱。 超鏈接G列中的單元格。 當我單擊單元格1中的文本時,它應該打開Apple_1.pdf 當我單擊單元格2時,它應該打開Apple_2.pdf。 這應該繼續,直到文本填充該列中的單元格爲止。

我有一個相同的Word宏,但我不知道如何使它在Excel中工作。以下是宏詞。

Sub macro3() 
Dim tbl As Table 
Dim coll As Column 
Dim path As String 
Dim pdf As String 
Dim path1 As String 
pdfname = ActiveDocument.Name 
pdfname = Left(pdfname, Len(pdfname) - 4) 
pdfname = Replace(pdfname, " ", "_") 
Set tbl = ActiveDocument.Tables(1) 
Set coll = tbl.Columns(7) 
Set colpdf = tbl.Columns(7) 
i = 0 
For Each c In coll.Cells 
If (i <> 0 And InStr(c, ".pdf") > 0) Then 
path1 = pdfname & "_" & i & ".pdf" 
ActiveDocument.Hyperlinks.Add Anchor:=c.Range, Address:=path1 
End If 
i = i + 1 
Next 
End Sub 

回答

1

您在設置path1時缺少文檔的目錄路徑。當您單擊超鏈接打開其查找「Apple1.pdf」的目錄時,該目錄不是有效的文件路徑。您只需將目錄路徑添加到路徑的開頭應看起來像「C:\ MyPath \ Apple1.pdf」。 您的代碼:

pdfname = ActiveDocument.Name 
pdfname = Left(pdfname, Len(pdfname) - 4) 
pdfname = Replace(pdfname, " ", "_") 
path1 = pdfname & "_" & i & ".pdf" 

解決方法1:假設文件在同一文件夾中的ActiveDocument。

Dim MyPath as string 
MyPath = ActiveDocument.Path 
path1 = MyPath & "\" & pdfname & "_" & i & ".pdf" 

解決方案2:文件位於另一個位置,您可以添加另一個字符串地址。

Dim MyPath as string 
MyPath = "C:\MyOtherLocation" 
path1 = MyPath & "\" & pdfname & "_" & i & ".pdf"