2015-02-06 135 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"