2016-08-19 3 views
0

두어 개의 긴 Word 2010 문서가 두문자어로 그려져 있고 많은 약어가이 모든 문서에 공통적으로 사용됩니다. 또한 각 문서 내에서 하이퍼 링크 형식으로 된 두문자어의 세로 목록이 테이블 형식으로 있습니다 (각 문서의 끝 부분에 있음).모든 텍스트 단어를 단어의 하이퍼 링크 목록으로 바꿉니다.

하이퍼 링크 목록 :

AA1 
AA2 
AA3 
... 

나는 아주 작은 워드 2010 매크로 경험이 있지만,이 같은 일을 할 매크로 가질 수 있는지 궁금해 : 내 커서를 배치 할 때,

  1. 을 주어진 문서 내를 목록의 맨 위에 (즉, 하이퍼 링크 내용 "AA1"이있는 셀에서)이 첫 번째 셀의 내용을 선택한 다음 클립 보드에 복사 한 다음 모든 텍스트를 전역 대체 (^ C 가정을 사용)합니다 하이퍼 링크 서식이 지정된 단어 "AA1"이있는 문서에서 서식이 지정된 단어 "AA1"을 찾습니다 (바꿀 단어가 있다고 가정).

  2. 그런 다음 하이퍼 링크 내용이 "AA2"인 두 번째 셀로 이동하고 하이퍼 링크 목록의 모든 하이퍼 링크 단어가 나타날 때까지 문서 내의 모든 "AA2"텍스트를 하이퍼 링크 된 "AA2"값 등으로 바꿉니다 문서 내의 모든 텍스트 단어를 대체했습니다.

이 기능을 사용할 수 있습니까? 내가 당신의 평균 올바른 [질문이 명확하고 시각적하지 않았다] 이해한다면

답변

0

이 당신이 필요로하는 기본 코드 :

Sub replaceHyperLink() 
Dim searchText As String 
searchText = "AA1" 
    Selection.Find.ClearFormatting 
    With Selection.Find 
     .text = "" 
     .Replacement.text = "" 
     .Forward = True 
     .Wrap = wdFindStop 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchKashida = False 
     .MatchDiacritics = False 
     .MatchAlefHamza = False 
     .MatchControl = False 
     .MatchWildcards = False 
     .MatchSoundsLike = False 
     .MatchAllWordForms = False 
    End With 

Do 
    With Selection.Find 
    .text = searchText 
    End With 

    Selection.Find.Execute 
If Selection.Find.Found = True Then 
    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _ 
     "stackoverflow.com/", SubAddress:="", ScreenTip:="", TextToDisplay:=searchText 
Else 
Exit Do 
End If 
Loop 
End Sub 
  • 당신이 AA2에 대한 루프를 수행해야합니다, AA3, ...
  • 테이블의 한 열만 하이퍼 링크로 연결하려면 해당 열을 선택한 다음 새 문서에 복사하십시오 (코드는 간단합니다) 그런 다음 작업을 수행하고 선택한 열에 다시 붙여 넣습니다.

당신은 세포의 텍스트를 얻으려면 :

Dim cellText As String 
For i = 1 To ActiveDocument.Tables(1).Rows.Count 
ActiveDocument.Tables(1).Rows(i).Cells(3).Select 
cellText = Selection.text 
'do what you want with text 
Next i 
+0

Solivan을 -이 많은 감사를! 나는 그것을 아주 많이 좋아! searchText가 "AA1"로 하드 코딩되지 않고 단순히 커서가있는 셀의 값으로 설정되는 방법이 있습니까? 내가 물어 보는 이유는 칼럼의 상단 셀에 커서를 놓고 싶다는 것입니다. (이 예에서 "AA1"이 될 수도 있지만 실제로는 AB1, AAA, ACK 등) 일 수 있습니다. 코드, 커서가 다음 셀로 이동하여 해당 값을 사용하고 바꾸기 등). 그런 다음이 일반 테이블을 완성 된 문서에 복사하고 매크로를 실행하여 모든 머리 글자 어를 업데이트 할 수 있습니다. –

+0

환영합니다. 네, 간단한 코드로 가능합니다. 나는 (1 절반 이하입니다) 디버그에 노력하고 비슷한 스크립트를 편집 한 후 – Solivan

+0

를 참조 하위 replaceHyperLinkO , replaceHyperLink 매크로 희미한 cellText 문자열 cellText = Selection.Text Selection.Copy Selection.Find.ClearFormatting 선택한다. 발견. Replacement.Clea rFormatting 와 Selection.Find 는 .text = celiText .Replacement.Text = "거짓말" 의 .forward = 진정한 .Wrap = wdFindAsk .Format = 거짓 .MatchCase = 거짓 .MatchWholeWord = 거짓 .MatchWildcards = 거짓 .MatchSoundsLike = 거짓 .MatchAIIWordForms = –

관련 문제