최신 정보:
모든 세부 사항을 요약하고 논의한 후 옵션을 확인하는 데 2 시간을 보냈으며이 업데이트는 모든 i
.
준비
우선, VMWare로 구동되는 Clean Win7 SP1 Ultimate x64 가상 머신에 깨끗한 Office 2010 x86 설치를 수행했습니다 (이는 일상적인 테스트 작업의 일반적인 루틴이므로 많은 작업을 배포했습니다).
그런 다음 다음 Excel 옵션 만 변경했습니다 (즉, 다른 모든 옵션은 설치 후 그대로 둡니다).
Advanced > General > Ask to update automatic links
확인 :
Trust Center > Trust Center Settings... > External Content > Enable All...
(데이터 연결과 관련된 것이이 경우에 중요하지 않을 가능성이 높지만) :
전제 조건
나는 준비에 배치 C:\
당 정확히 같은 통합 문서 @Siddharth Rout
(사용자의 편의를 위해 공유) 자신의 업데이트 대답 제안 : https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx 링크 된 책은 다음되었다 삭제 그래서 공유에 링크 책을 사용할 수 없습니다 (확실히).
수동 열기
위의 공유 파일은 열 때 (위에 나열된 Excel 옵션이 있음) 2 개의 경고가 나타나는 순서대로 표시됩니다.
경고 # 1
를 클릭 한 후 Update
예상대로 다른 것을 얻었습니다.
경고 # 2
그래서 내 테스트 환경이 이제 OP
's) 와 거의 비슷하다고 생각합니다.
VBA 열기
이제 가능한 모든 옵션을 단계별로 시도하여 그림을 명확하게 만들겠습니다. 단순성을 위해 관련 코드 줄만 공유하겠습니다 (코드가 포함 된 전체 샘플 파일은 결국 공유됩니다).
1. 간단한 Application.Workbooks.Open
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
당연히 위의 수동 열기와 같이 두 가지 경고가 모두 생성됩니다.
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
이 코드로 끝 경고 # 1 (및 중 옵션을 클릭 Update
/ Don't Update
) 더 경고, 즉 생산하지 Application.DisplayAlerts = False
억압 경고 # 2 .
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
반대로이 DisplayAlerts
코드는 WARNING # 2 로만 끝납니다 . 즉, WARNING # 1을Application.AskToUpdateLinks = False
억제 합니다.
4. 이중 거짓
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
분명히이 코드는 BOTH WARNINGS 를 억제하는 것으로 끝납니다 .
5. UpdateLinks : = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
마지막으로이 단선 솔루션 (원래에서 제안 @brettdj
)은 Double False와 동일한 방식으로 작동합니다. 경고 가 표시되지 않습니다!
결론
좋은 테스트 방법과 매우 중요한 해결 사례를 제외하고 (통합 문서를 타사에 보내는 동안 매일 이러한 문제에 직면 할 수 있으며 이제 준비가되었습니다.) 다음 두 가지를 더 배웠습니다.
- Excel 옵션은 버전에 관계없이 중요합니다. 특히 VBA 솔루션을 사용할 때는 더욱 그렇습니다.
- 모든 문제에는 명확하지 않고 복잡한 문제와 함께 짧고 우아한 해결책이 있습니다. 이에 대한 증거가 하나 더 있습니다!)
솔루션에 기여한 모든 사람, 특히 질문을 제기 한 OP에게 감사드립니다. 내 조사와 철저히 설명 된 테스트 단계가 나에게만 도움이 되었기를 바랍니다.)
위 코드 샘플이 포함 된 샘플 파일이 공유됩니다 (많은 줄이 의도적으로 주석 처리됨) : https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
원래 답변 ( 특정 옵션을 사용 하여 Excel 2007에 대해 테스트 됨 ) :
이 코드는 나를 위해 잘 작동합니다 InputFolder
. 다음 에서 와일드 카드를 사용하여 지정된 모든 Excel 파일을 반복합니다 .
Sub WorkbookOpening2007()
Dim InputFolder As String
Dim LoopFileNameExt As String
InputFolder = "D:\DOCUMENTS\" 'Trailing "\" is required!
LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""
Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True
LoopFileNameExt = Dir
Loop
End Sub
경고없이 외부 링크를 사용할 수없는 책으로 시도했습니다.
샘플 파일 : https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm