[英]Automation error Excel 2010 from Delphi
有人知道為什么以下代碼不適用於Excel 2010( 家庭和小型企業版 )嗎?
procedure TForm1.Button1Click(Sender: TObject);
var
rango : OleVariant;
ExcelObject : TExcelApplication;
ExcelWorksheet : TExcelWorksheet;
LCID : integer;
begin
try
ExcelObject := TExcelApplication.Create (self);
LCID := LOCALE_USER_DEFAULT;
ExcelObject.Workbooks.Add(EmptyParam, LCID);
ExcelWorksheet := TExcelWorksheet.Create(ExcelObject);
ExcelWorksheet.ConnectTo(ExcelObject.Worksheets.Item [1] as _Worksheet);
rango := ExcelWorksheet.Range['B2','B2'];
rango.Font.size := 16;
rango.Font.Bold := True;
rango.Value2 := 'test';
ExcelObject.Visible[lcid] := true;
except
on e: exception do
showmessage(e.message);
end;
end;
添加工作簿時,顯示“未注冊的類”異常:“ ExcelObject.Workbooks.Add(EmptyParam,LCID);”
此功能適用於Office 2010專業版(和較舊的Office版本),但不適用於家庭和小型企業版2010版。
我知道這確實很晚,但是最近兩天我一直在與這個錯誤進行斗爭,終於弄明白了(我認為)。 由於組件中糟糕的錯誤處理,該錯誤具有誤導性。
我得到的線索是,它可以在同一台機器上的不同測試應用程序中完美運行-因此,這不是類注冊問題。
如果沒有正確連接東西,我會在多個地方出現錯誤。 在您的情況下,您可能需要執行CONNECT。
例如
ExcelObject := TExcelApplication.Create (self);
ExcelObject.Connect;
如果您忘記了執行ConnectTo調用以將接口連接在一起,那么我也看到了這一點。
例如
XlWorkBook.ConnectTo(XlApp.ActiveWorkbook);
希望這對其他人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.