2015-02-06 3 views
0

하나의 폴더에 많은 pdfs와 엑셀 시트가 있습니다. 이름 지정 순서가 일관됩니다.하이퍼 링크 열 = 엑셀 매크로

시트의 이름은 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" 

Solution1 : 문서를 가정은 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"