소스는 이렇습니다.
변환도중 'OLE error 800A01A8' 이런 문구에러가 나옵니다.
찾지를 못해서 이렇게 도움을 청합니다.
답변부탁드립니다.
procedure TForm1.Button1Click(Sender: TObject);
var
ExcelApp, ExcelBook, ExcelSheet : Variant;
I, J, s : Integer;
begin
try
//엑셀을 실행
ExcelApp := CreateOLEObject('Excel.Application');
except
ShowMessage('Excel이 설치되어 있지 않습니다!!!');
Exit;
end;
Try
ExcelApp.Visible := False;
ExcelApp.DisplayAlerts := False;
if OpenDialog1.Execute then
begin
ExcelBook := ExcelApp.WorkBooks.Open(OpenDialog1.FileName);
ExcelBook := ExcelApp.WorkBooks.item[1];
ExcelSheet := ExcelBook.Worksheets.Item[1];
StringGrid1.RowCount := ExcelSheet.UsedRange.Rows.count+1;
StringGrid1.ColCount := ExcelSheet.UsedRange.Columns.count+1;
s := 0;
For I := 1 to 100 do
begin
s:= i-2;
For J := 0 to ExcelSheet.UsedRange.Columns.count do
begin
if j = 0 then
begin
if s > 0 then
StringGrid1.Cells[J,I] := intTostr(i); //스트링그리드에 뿌리기
end
else
StringGrid1.Cells[J,I] := vartostr(ExcelSheet.Cells[I,J]); //스트링그리드에 뿌리기
end;
end;
ExcelApp.WorkBooks.Close;
ExcelApp.quit;
ExcelApp := unassigned;
end;
Except
on err:exception do
begin
ExcelApp.WorkBooks.Close;
ExcelApp.quit;
ExcelApp := unassigned;
ShowMessage('작업이 취소되었습니다. Data확인요망-'+err.message);
end;
end;
ShowMessage(IntToStr(ExcelSheet.UsedRange.Rows.count) + '건의 자료를 변환하였습니다');
end;
ShowMessage(IntToStr(ExcelSheet.UsedRange.Rows.count) + '건의 자료를 변환하였습니다');에서 ExcelSheet을 해제한후 사용해서 그러건 같은데요
닫고 해제하기전에 라인수를 구해 변수에 넣어 ShowMessage를 마지막에 넣던지
ShowMessage를 해제전에 사용해보세요
hsr///////////////////////////////////////////////////////////////