
변경이 가능한가요?안건실제로 VBA를 사용하여 Excel 스프레드시트를 참조하는 MS Word의 링크가 있습니까?
나는 어떻게 할 것인지에 대한 토론을 찾았습니다.파일 소스 변경, 하지만 그렇지는 않습니다안건, 아래에 표시된링크 수정MS Word 2010의 메뉴:
똑같은 질문이 이미 요청되었습니다.여기, 하지만 답변이 없습니다. 약 2년 전입니다. 나는 또한링크형식링크 소스를 편집하는 데 사용되는 속성 문서이지만 아무데도 연결되지 않았습니다.
문제를 해결하는 방법에 대한 아이디어를 주시면 감사하겠습니다.
배경: 데이터가 포함된 워드 문서를 제공하는 Excel 스프레드시트가 있습니다. 저는 이 문서를 템플릿으로 사용하려고 합니다. 분석에 따라 데이터를 워드 문서에 공급하는 스프레드시트를 변경하겠습니다. 스프레드시트의 테이블(형식이 지정되지 않음)은 범위가 다양할 수 있습니다. 그러나 열 수는 동일합니다. 행 수가 다양하므로 이에 따라 항목 필드를 변경해야 합니다.
편집하다
문제의 MWE로 2개의 샘플 파일을 제공했습니다. 찾을 수 있습니다여기.
답변1
나는 이것에 대한 해결 방법을 찾았습니다. 변경하는 대신아이텐스, 연결된 모든 범위의 이름을 지정하는 VBA 스크립트를 만들었습니다. 그래서 Word에서 링크 항목을 변경하는 대신 Excel에서 명명된 범위 값을 변경합니다. 링크 항목은 동일하게 유지되지만 실용적으로 수정될 수 있는 범위를 가리킵니다. 범위에 이름을 추가하기 위해 작성한 코드는 다음과 같습니다.
Sub CreateNamedRanges()
Dim i As Integer
For i = 1 To Worksheets.Count
sheetName = "Mysheet" & i
varName = "Myvar" & CStr(i)
Set Rng = Sheets(sheetName).Range("G6:I9")
ActiveWorkbook.Names.Add Name:=varName, RefersTo:=Rng
Next i
End Sub
이 접근 방식의 단점은 이전에 수행했던 모든 연결을 수동으로 다시 생성(링크)해야 한다는 것입니다. 파일 소스를 변경하려면 질문 링크의 코드를 사용했습니다. 완성을 위해 여기에 작성합니다.
Sub changeSource()
Dim dlgSelectFile As FileDialog 'FileDialog object
Dim thisField As Field
Dim selectedFile As Variant 'must be Variant to contain filepath of selected item
Dim newFile As Variant
Dim fieldCount As Integer
'create FileDialog object as File Picker dialog box
Set dlgSelectFile = Application.FileDialog(FileDialogType:=msoFileDialogFilePicker)
With dlgSelectFile
'use Show method to display File Picker dialog box and return user's action
If .Show = -1 Then
'step through each string in the FileDialogSelectedItems collection
For Each selectedFile In .SelectedItems
newFile = selectedFile 'gets new filepath
Next selectedFile
Else 'user clicked cancel
End If
End With
Set dlgSelectFile = Nothing
'update fields
fieldCount = ActiveDocument.Fields.Count
For x = 1 To fieldCount
ActiveDocument.Fields(x).LinkFormat.SourceFullName = newFile
Next x
End Sub
마지막으로 모든 링크를 한 번에 업데이트하려면 다음을 수행하세요.
Sub AutoOpen()
ActiveDocument.Fields.Update
End Sub