나는 고객 정보가있는 동적 단어 페이지를 작성하기 위해 우편물을 만들었습니다.각 페이지의 첫 단어를 추출/삭제하는 방법은 무엇입니까?
그런 다음 결과 파일을 여러 페이지로 나눠서 각 페이지를 하나의 파일로 저장하는 매크로를 보았습니다.
이제 고객 정보가 포함 된 일부 파일 이름을 제공하려고합니다. 나는 그걸 봤어 그리고 난 (유일한?) 방법은 페이지의 맨 처음에 그 정보와 함께 mergefield를 만들고 다음 파일 이름에 넣어 매크로와 페이지에서 그것을 삭제하고 삭제하는 것입니다 생각합니다.
예 : Stackoverflow라는 고객이있는 경우 Facture_Stackoverflow.doc라는 파일을 갖고 싶습니다.
내 페이지에서 첫 단어를 선택하고 추출한 다음 삭제하는 방법을 찾지 못했습니다.
여기 내 "분할 매크로"인 단지 증가 된 ID와 현재 이름을 파일 :
Sub DecouperDocument()
Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
ActiveDocument.Bookmarks("\page").Range.Copy
Documents.Add
Selection.Paste
Selection.TypeBackspace
ChangeFileOpenDirectory "C:\test\"
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="Facture_" & DocNum & ".doc"
ActiveDocument.Close
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
안녕하세요. 크림입니다. 답변 해 주셔서 대단히 감사합니다. 내 메인 루프에서 함수를 호출했지만 불행히도 실행 오류 4608 : 범위를 벗어났습니다. 디버거는 "With .Range (0, intCharCount - 1)"행을 보여줍니다. 내가 잘못했는지 생각해 보시겠습니까? intCharCount의 값이 0이면 ...은 무엇을 의미합니까? 내 페이지의 헤더 때문일 수 있습니까? – user1211458
intCharCount는 문서의 첫 번째 공백 문자의 문자 위치를 반환해야합니다. intCharCount는 문서가 비어있을 때만 0이 될 것이라고 생각합니다. 즉, 글자, 단어 또는 공백이 없습니다. – markblandford
그럴 수도 있습니다. 필자가 제공 한 함수는 코드가있는 문서 (ThisDocument)에서만 작동합니다. 질문에서 코드를 다시 보면서 ThisDocument보다는 ActiveDocument를 사용하도록 내 함수를 변경해보십시오. – markblandford