2014-11-28 2 views
-1

나는 매크로를 사용하여 Excel에서 명명 된 범위의 텍스트로 단어 문서를 채 웁니다. 문서라는 단어는 명명 된 Excel 범위에 해당하는 책갈피가 있습니다. 코드를 작성하지 않았지만 다른 소스에서 코드를 복사했습니다.책갈피가있는 VBA 코드로 오류 1004

제가 게시 한 스 니펫보다이 매크로에 더 많은 것이 있습니다. 유용하다면 나머지를 게시 할 수 있습니다. 나는 나의 단어 문서의 약 절반이 북마크되어 있었고 매크로가 잘 작동하고 갑자기 멈추었다.

아래에 강조 표시된 행에 오류 1004가 표시됩니다. 나는 초보자이므로이 문제를 해결하기 위해 무엇을 검색해야하는지 잘 모르겠습니다. 도움을 주시면 감사하겠습니다! 미리 감사드립니다!

P. 관련성이있는 경우 Word 및 Excel 2007을 사용하고 있습니다.

'PASTE TEXT STRINGS LOOP 
    n = 1 
    For Each temp In BkmTxt 
     p = p + 1 
     Prompt = "Please wait. Copying text. Carrying out operation " & p & " of " & pcount & "." 
     Application.StatusBar = Prompt 

    'If The Bkmtxt(n) is empty then go to the next one, once that has been found do next operation. 
    If BkmTxt(n) = Empty Then 
     n = n + 1 

    'should find match and work 
    Else 

     'You might want to use multiple copies of the same text string. 
     'In this case you need to call the bookmark as follows: "ARTextWhatever_01" 
     'You can use as many bookmarks as you want. 
     BkmTxtSplit = Split(BkmTxt(n), "_") 
     vValue = Range(BkmTxtSplit(0)).Text **<----- ERROR HERE** 

     Set wdRng = wdApp.ActiveDocument.Bookmarks(BkmTxt(n)).Range 
     If Len(sFormat) = 0 Then 
      'replace the bookmark text 
      wdRng.Text = vValue 
     Else 
      'replace the bookmark text with formatted text 
      wdRng.Text = Format(vValue, sFormat) 
     End If 

     'Re-add the Bookmark 
     wdRng.Bookmarks.Add BkmTxt(n), wdRng 
     n = n + 1 
    End If 
Next 
+0

"BkmTxt"는 이중 북마크의 배열이며, 배열의 각 요소에는 두 개의 실제 북마크가 밑줄로 결합되어 있습니다. 또는 'BkmTxt'는 동일한 이중 책갈피 이름을 포함하는 셀 범위 일 수 있습니다. 각각을 다루는 방법은 다양합니다. 명확히 해 주시겠습니까? – Jeeped

+0

귀하의 질문을 이해할 수 있을지 잘 모르겠지만 명확히하기 위해 BkmTxtSplit은 책갈피를 밑줄로 분리하여 북마크가 단어 문서의 여러 위치에서 반복 될 수 있도록합니다. 이 경우, 예를 들어, 단어 문서의 책갈피 중 하나가 내 Excel 문서의 명명 된 범위 셀 "ARTextName"에 직접 해당합니다. 이 경우 Excel의 명명 된 범위 셀에 내 보고서의 제목이 포함됩니다. 나는 단어 문서의 한 곳 이상에 보고서 제목을 올리고 싶습니다. 이렇게하려면 ARTextName_01, ARTextName_02 등의 책갈피를 삽입합니다. 그게 도움이 되니? – jazzy

답변

0

1 단계 : 외부 소스의 코드를 복사하지 마십시오. 학습 도구로 외부 자료를 사용하고 그들이 실제로하고있는 것을 이해하려고 노력하십시오.

지금 내가 제대로 이해한다면, 당신은 단순히 명명 된 범위와 엑셀 시트를 가지고, 나는 그들이 이미 내 정보를 가지고 가정, 정확히 명명 된 범위와 일치 책갈피와 워드 문서 :

2 단계 : 당신은 엑셀

여기

내에서 단어 개체 라이브러리 참조가 있는지 확인하십시오. (작동하는지 테스트하지 않았다 상관 없어 배우고 그것을 사용) 당신은 아마 종료 얻을 것이다

sub KeepItDoin() 
    dim xlRange as Excel.Range 
    dim wdApp as new Word.Application 
    dim wdDoc as Word.Document 
    dim wdBkm as Word.Bookmark 

    set wdDoc = wdApp.Documents.Open("Filepath") 'get filepath from where ever 

    for each wdBkm in wdDoc.Bookmarks 
     set xlRange = Application.Range(wdBkm.Name) 
     wdBkm.range.text = xlRange.Value 
    next wdBkm 
end sub 

합니다. 책갈피가 범위와 일치하면 이름을 사용하여 Excel에서 범위를 찾은 다음 Excel에서 범위 내에서 데이터를 책갈피 범위로 이동하도록 지시 할 수 있습니다.

서식을 추가하거나 테이블을 만든 다음 범위 내에서 셀을 이동하고 표를 채울 필요가 있습니다.하지만 파스타를 복사 할 때까지 기꺼이 가깝습니다.

0

누구든지 관심이있는 경우를 생각해 냈습니다. 내 Word 문서에 삽입 한 북마크에 오류가있었습니다. Word 문서에 excel의 범위에 해당하지 않는 책갈피가 있으면이 매크로는 Error 1004를 반환합니다. 도와 줘서 고마워.

관련 문제