안녕하십니까?
엑셀 저장할 때 저장하고자 하는 파일이 열려있을 경우 저장이 안되거나 오류나서 죽는 현상이 있습니다.
그럴때 아래 스크립트를 추가하여 체크해 보십시오.
String Ls_DocName, Ls_Named, Ls_FileFormat Integer Li_Value, Li_FileNo
Ls_DocName='' Ls_FileFormat='MS-Excel File Format (*.xls),*.xls' // MS-Excel 저장
Li_Value = GetFileSaveName('Save File Name', Ls_DocName, Ls_Named, 'xls', Ls_FileFormat)
If Li_Value<>1 Then Return -1 End If
// 이부분에서 선택한 파일을 그냥 FileOpen()으로 열어봅니다.
// 현재 열려있다면
If FileExists(Ls_DocName) Then
Li_FileNo = FileOpen(Ls_DocName, StreamMode!, Write!, LockReadWrite!, Append!) If Li_FileNo = -1 Or IsNull(Li_FileNo) Then MessageBox('확인', '선택하신 파일이 현재 열려있습니다. 열려진 파일을 닫고 작업하십시오.') Return -1 End If FileClose(Li_FileNo)
End If
....(계속)
이것저것 많이 찾아보다(오후내내 헤멨다는..ㅋㅋ)가 발견했네요 ㅎㅎㅎ
더 좋은 방법이나 이 방법에 버그가 있다면 알려주세요~~제발~~~~ ^^
=============
2010-12-21
FileOpen()을 사용하면 파일이 없을 때 해당 파일을 생성시켜주는 작용을 합니다.
따라서 FileOpen()체크시 새로운 이름의 파일일경우 해당 파일이 생성되버리는 버그가 됩니다.
그게 빨간색 부분을 추가합니다. |