지금은 모든 이제 다음 몇 가지 버그와 함께 잠시 동안이 코드를 사용하고 :기본 교체 링크 된 오브젝트 소스 - 엑셀/PPT VBA
이Sub UpdateSheet() Dim sld As Slide
Dim sh As Shape
Dim strNms As String
Dim intI As Integer
Dim strNewPath
Dim ExcelFile
Dim exl As Object
Set exl = CreateObject("Excel.Application")
'Open a dialog box to promt for the new source file.
ExcelFile = exl.Application.GetOpenFilename(, , "Select Excel File")
For Each sld In ActivePresentation.Slides
For Each sh In sld.Shapes
If sh.Type = msoLinkedOLEObject Then
With sh.LinkFormat
strNms = .SourceFullName
intI = InStr(1, strNms, "!")
strNewPath = ExcelFile & Mid(strNms, intI, Len(strNms) - intI + 1)
.SourceFullName = strNewPath
End With
End If
Next sh
Next sld
ActivePresentation.UpdateLinks
End Sub
문제는, 연결된 개체도 내에서 섹션을 포함한다 [MyDocument.xlsm] 차트 1.
위의 코드는!까지 문자열을 모두 변경하지만 대괄호 안에있는 섹션도 변경하지 않습니다.
해당 섹션이나 더 나은 코드를 루프하는 방법에 대한 권장 사항은 무엇입니까?
미리 감사드립니다.
당신은 * 마지막 * 출력 * 초기 * 문자열 입력의 예를 제공하고 원하는 수 있습니까? –
초기 문자열 입력은 "c : /mydocuments/folder/Source1.xlsm! Sheet1 [Source1.xlsm] Chart1" 새 출력은 다음과 같습니다. "c : /mydocuments/folder/Source2.xlsm! Sheet1 [Source2.xlsm ] Chart1 " 그게 당신이 묻는거야? – GregdeLima
"Source1"을 "Source2"로 '바꾸기'할 수 없습니까? –