2009-06-16 2 views
5

나중에 데이터베이스로 내보내는 약 4000 개의 양식 필드가 포함 된 Word 문서가 있습니다. 문제는 4000 필드 중 어느 것도 "북마크"필드에 정보가 없으므로 정보를 저장할 수 없다는 것입니다.현재 선택 (VBA)을 저장하는 Word 매크로

북마크 (FormField.Name)를 작성하는 과정을 돕기 위해 매크로를 만들려고하지만 올바른 작업을 수행 할 수 없습니다. 문제는 사용자의 선택에 포함 된 FormField의 이름을 변경하려는 것뿐입니다.

Sub Macro2() 
    Dim myFile As String 
    Dim fnum As Integer 
    Dim sFileText As String 
    Dim currentField As FormField 

    myFile = "c:\testMacro.txt" 
    fnum = FreeFile() 
    Open myFile For Input As fnum 

    For Each currentField In Selection.FormFields 
     Input #fnum, sFileText 

     With currentField 
      .StatusText = sFileText 
      .OwnStatus = True 
     End With 

     currentField.Select 
     Application.WordBasic.FormFieldOptions Name:=sFileText 
    Next currentField 
End Sub 

을하지만 그것은 작동하지 않습니다, 선택 객체가 각 루프의 경우에 변경되기 때문에, 그 후 그것은 단지 선택의 첫 번째 양식 필드를 포함 :이 솔루션에 와서 관리했습니다.

그래서 여기에 내 질문이 있습니다. 현재 선택을 저장하고 변경 한 후에 다시로드 할 수있는 방법이 있습니까?

Dim mySelection as Selection 
Set mySelection = Selection 

을하지만 선택을 변경하면, 변수 내 선택 사항은 (... 아주 정상입니다)뿐만 아니라 변경 및 I 개체를 복제 할 수있는 방법을 찾을 수 없습니다 :

나는 시도했다 .

다른 사람에게이 방법에 대한 아이디어가 있습니까?

감사

답변

10

사용하여 "복사"에 대한 다른 참조 :

Dim selBkUp As Range 
Set selBkUp = ActiveDocument.Range(Selection.Range.Start, Selection.Range.End) 

또는 복제를 사용 : 당신이 단지 수

Dim selBkUp As Range 
selBkUp = Selection.Range.Duplicate 
0

Selection.Range가 자동으로 중복 :

Dim selBkUp As Range 
Set selBkUp = Selection.Range