2017-04-20 3 views
0

"제출"버튼을 클릭하면 사용자 폼 데이터가 시트 3의 다음 사용 가능한 행에 저장되고 워드 문서가 생성되어 특정 폴더.워크 시트 및 워드 문서에 저장된 사용자 정의 폼 데이터 및 셀에 추가 할 하이퍼 링크

동시에, 어떻게 생성 된 단어 문서 파일 이름의 하이퍼 링크를 추가하고 하이퍼 링크를 H 열에 삽입 할 수 있습니까? 아래 코드에 추가 할 수 있습니까? 누군가 도와 드릴 수 있습니까?

SaveName = "\Desktop\DAILY REPORT" & Format(Now, "dd-mmm-yyyy") & FileExt 
If .Version <= 12 Then 
      .ActiveDocument.SaveAs SaveName 
     Else 
      .ActiveDocument.SaveAs2 SaveName 
     End If 
      .ActiveDocument.Close 
     .Quit 
     Set wdApp = Nothing  
End Sub 

답변

0

예. 하이퍼 링크를 설정할 수 있습니다. 다음 코드는 대략적인 지침이 될 수 있습니다. 요점은 하이퍼 링크를 배치하려는 열 H의 셀에 행 번호를 제공해야한다는 것입니다. 프로 시저 중 일부만 제공했기 때문에 코드에 더 많은 오류가 있습니다. 하이퍼 링크를 프로그래밍 할 수있는 방법을 보여줍니다.

Private Sub SetHyperlink() 

    Const C As Long = 8     ' = Column H 

    Dim Wdapp As MSWord.Application 
    Dim SaveName As String 
    Dim Ws As Worksheet 
    Dim Rng As Range 
    Dim R As Long 

    Set Ws = ActiveSheet    ' change as required 
    R = Ws.Cells(Ws.Rows.Count, "H").End(xlUp).Row + 1 
    ' the path of SaveName is incomplete: 
    ' must start with drive (like C:\Users\[Username]\Desktop) 
    ' or Environ("USERPROFILE") & "\Desktop 
    SaveName = "\Desktop\DAILY REPORT" & Format(Now, "dd-mmm-yyyy") & FileExt 

    Set Rng = Ws.Cells(R, C) 
    Ws.Hyperlinks.Add Anchor:=Rng, _ 
         Address:=SaveName, _ 
         TextToDisplay:="Choose your text", _ 
         ScreenTip:="Click to open the file" 

    With Wdapp 
     If .Version <= 12 Then 
      .ActiveDocument.SaveAs SaveName 
     Else 
      .ActiveDocument.SaveAs2 SaveName 
     End If 

     .ActiveDocument.Close 
     .Quit 
    End With 

    Set Wdapp = Nothing 
End Sub 
+0

안녕하세요 Variatus, 정말 고마워요. 내 프로 시저 중 일부만 제공하고 SaveName의 불완전한 경로 때문에 발생하는 혼란에 대해 유감스럽게 생각합니다. 내 시술은 너무 길어서 어떻게 단축해야하는지 잘 모르겠습니다. 나는 코드를 수정하여 내 프로 시저에 통합 시켰으며 작동 중입니다. 유일한 문제는 행 12 번에 항상 하이퍼 링크 파일을 추가하기 때문에 R = 12와 관련된 문제입니다. 하이퍼 링크를 열 H의 마지막 빈 행에 추가해야합니다.이 방법을 알려주십시오. – Zero

+0

R = 12를 R = Sheet3.Rows ("3")로 변경하여 시도해 보겠습니다. 끝 (xlDown) +1. 바라기를 바란다. – Zero

+0

좋아요! 네가 일하게되어 기쁘다. 위의 코드에서 필자는 임의의 "12"를 H 열의 첫 번째 빈 셀로 대체했습니다. 끝없는 프로 시저를 만드는 것보다 BTW에서 호출 할 수있는 자체 하위 또는 함수에서 각 논리 단계를 격리하는 것이 좋습니다. "본관". 이는 문제 해결을 단순화하는 데 효과적입니다. – Variatus