2014-03-06 2 views
1

vba 코드를 사용하여 Excel을 열 때 Excel 파일을 덮어 쓸 수있는 방법이 있습니까?열 때 Excel 통합 문서 덮어 쓰기 -VBA 코드

+0

매크로를 실행하는 동일한 Excel 파일을 덮어 쓰는 것을 의미합니까? –

+0

no no..am 다른 파일에서 매크로를 실행 중입니다. 이 매크로에서 파일을 열 때 파일을 덮어 쓰려고합니다. –

+0

왜 '저장'이 효과가 없습니까? –

답변

0

나는 열려있는 파일을 덮어 쓸 수 없다고 생각합니다. 이것은 윈도우 제한이며 내가 아는 한 그렇게 할 수 없습니다.

그래서 다른 이름으로 저장해야 할 것입니다.

EDIT : 파일을 연 사람이 아닌 한 편집하십시오. VBA 코드를 통해 파일을 열면 workbookname.save 만 작동합니다.

+0

안녕 ... 그런 다음 수표를 찍을 수있는 방법이 있습니다. 파일을 연 다음 파일을 닫으면 ... 할 수 있습니까? –

+0

매크로에서 파일을여시겠습니까? 아니면 파일을 열어 놓은 다른 사람입니까? – vinkun

+0

나는 항상 기존 파일을 열어 본 적이 없습니다 ... 새 파일을 생성하고 기존 파일을 덮어 씁니다 ...하지만 기존 파일을 누군가가 열면 문제가 발생합니다 –

0

읽기 전용 모드로 열려있는 파일을 덮어 쓸 수 있습니다. 이를 달성하려면 파일의 속성을 읽기 전용으로 설정해야합니다 (따라서 모든 사람이 읽기 전용 모드로 열도록 강요합니다).

난 당신이 예제로 사용할 수있는 다음 코드를 도달 내 자신의 실험부터 SetAttr 기능 https://www.techonthenet.com/excel/formulas/setattr.php

를 사용하거나 윈도우 OS (파일의 속성을 변경) 내에서, 또는 VBA를 통해 수행 할 수 있습니다.

' Verify that the file exists. 
If Dir(strFileLocation) <> vbNullString Then 
    ' For some reason the read only flag needs to be removed for VBA to be able to overwrite the file. 
    SetAttr strFileLocation, vbNormal 
End If 
' Do the actual (over)writing 
ThisWorkbook.SaveCopyAs strFileLocation 
' Set the read only flag once more 
SetAttr strFileLocation, vbReadOnly 

```

: 당신이 문자열 변수는 파일이 이미 존재하지 않을 수있다 출력 파일의 경로를 들고 인 strFileLocation에 현재 열려있는 통합 문서의 복사본을 저장하려고 시도하고 가정