코드상으론 큰 문제가 없어보이는데, 괜찮다면 해당 엑셀 파일을 올려봐 주시죠.
테스트 해보겠습니다.
레몬에이드 님이 쓰신 글 :
: 안영제님 안녕 하세요. 늘 도움 주신점 감사하게 생각합니다.
:
: 염치 물문하고 여쭙니다.
:
: 델파이에서 데이타를 엑셀의 시트로 옮기는데요.
:
: 잘되다가 최근에 RPC 서버를 사용할수 없습니다. 라는 메세지가 뜹니다.
:
: 제가 만든 프로그램이 아예 먹통이 되다가 하도 안떠서 작업 관리자의 Excel.exe 를 모니터링 하니 CPU 점유일이 80~90 % 넘어가면서 강제 종료를 하고 제가 만든 프로그램으로 돌아오니 RPC 서버를 사용할수 없습니다. 라는 메세지가 뜹니다. 그다음 제가 Try 로 연결한 메세지가 뜨고요..
:
:
:
: 엑셀 연결 소스는 이렇게 했습니다.
: try
:
: { try // Excel 이 활셩화 되어있으면
: XLApp := GetActiveOleObject('Excel.Application');
: Except
: XLApp := CreateOLEObject('Excel.Application');
: end; } // 이거 엑셀 2003 이하 버전은 엑셀 이 뜨긴하는데 시트가 안열리더군여. ㅡ.ㅜ
:
: XLApp := CreateOLEObject('Excel.Application');
: XLApp.WorkBooks.Open(ExtractFilePath(Application.ExeName)+'\Excel\cpk.xls');
: Sheet := XLApp.Workbooks[1].worksheets['CpkCalculate'];
: DataSheet:=XLApp.Workbooks[1].worksheets['Data'];
: XLApp.DisplayAlerts := False;
: except
: if MessageDlg('엑셀을 열수 없습니다. ! 로그기록 하시겠습니까?',mtError,[mbYes,mbNo],0) = mrYes then
: frmMain.mmLog.Lines.Add(DateToStr(Now)+'ExcelDataCPK Excute CreateOLEObject Error ');
: XLApp.Quit;
: frmProgress.Close;
: Exit;
: end;
:
: // 데이타 처리
: // 엑셀 셀에 값 전달
: XLapp.Visible := true; //엑셀 보이기
:
: 선언은
: private
: { Private declarations }
: Sheet,DataSheet,XLApp : Variant; // 여기다 했습니다.
:
: RPC 서버를 사용할수 없다란 말이 잘 이해가 가질 않습니다. 도와주십시요.
:
: 읽어 주셔서감사합니다..
|