![문서를 저장하기 위해 매크로를 실행할 때 대화 상자가 표시되지 않습니다.](https://rvso.com/image/1597840/%EB%AC%B8%EC%84%9C%EB%A5%BC%20%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EB%A7%A4%ED%81%AC%EB%A1%9C%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20%EB%8C%80%ED%99%94%20%EC%83%81%EC%9E%90%EA%B0%80%20%ED%91%9C%EC%8B%9C%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이것이 제가 사용한 코드입니다. 디자이너에서 이것을 실행할 때만 대화 상자가 나타납니다. 디자이너를 닫고 매크로를 실행하면 통합 문서만 저장되지만 이 매크로를 실행할 때마다 대화 상자가 나타나도록 하고 싶습니다. 어떤 도움/제안이라도 부탁드립니다.
Sub SaveAs()
Dim IntialName As String
Dim sFileSaveName As Variant
IntialName = "Sample Output"
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End Sub
답변1
귀하의 코드에는 몇 가지 수정이 필요합니다.
- 귀하가 사용한 서브루틴 이름이 예약어(명령어) 중 하나와 충돌하기 때문에다른 이름으로 저장, 따라서 Excel에서 이 오류를 반환합니다!
- 명령줄에서 이를 제거해야 합니다.
InitialFileName:=
이유:지정된 이름으로 파일을 저장하려고 합니다 IntialName = "Sample Output"
.
- 마지막은 오타입니다
InitialName
.
제안된 수정 사항:
예를 들어, 서브루틴의 이름을 바꾸십시오.내 파일을 다른 이름으로 저장또는 그 외의 것다른 이름으로 저장.
이 줄을 바꾸십시오.
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
이것으로,
sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
- 당신은 프롬프트를 얻을 수 있습니다.
그리고 이것은 사용할 완전한 코드여야 합니다.
Sub SaveMyFileAs() Dim IntialName As String Dim sFileSaveName As Variant IntialName = "Sample Output" sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm") If sFileSaveName <> False Then ActiveWorkbook.SaveAs sFileSaveName End If End Sub
주의이 코드는 다음과 같이 사용할 수 있습니다.통합 문서_BeforeClose이벤트도.