Jor*_*sov -5 delphi excel vba excel-vba
您好我的问题是如何通过Delphi 7程序执行Excel vba代码?我在互联网上发现了一些文章,没有明确说明.其中一个是使用OLE: 文章
如果您能给我答案的示例代码,我将不胜感激.主要的问题是我无法理解代码,我需要一些帮助.变量没有声明,我不会不会工作.提前致谢
unit Macro;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, StdCtrls, Buttons, MSObjCtrls, ComObj, ActiveX;
type
TForm1 = class(TForm)
ActionList1 : TActionList;
btnMacro : TMSBitBtn;
acMacro : TAction;
procedure acMacroExecute(Sender : TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 : TForm1;
implementation
{$R *.dfm}
procedure TForm1.acMacroExecute(Sender : TObject);
var
Excel : OleVariant;
begin
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open('C:\Documents and Settings\iordan.borisov\Desktop\data.xls');
Excel.Run('PERSONAL.XLSB!MyMacro'); // <<--- Error here.
Excel.Quit;
end;
initialization
CoInitialize(nil);
finalization
CoUninitialize;
end.
Run Code Online (Sandbox Code Playgroud)
此代码抛出运行时异常:
项目Project1.exe引发了异常类EOleException,并显示消息"OLE错误800A03EC".流程停止了.使用"步骤"或"运行"继续.
在第34行
这很简单:
uses
ComObj;
....
var
Excel: OleVariant;
....
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open('myworkbook.xls');
Excel.Run('MyMacro');
Excel.Quit;
Run Code Online (Sandbox Code Playgroud)
确保您不要忘记打电话CoInitializeEx以便COM投资.
| 归档时间: |
|
| 查看次数: |
4743 次 |
| 最近记录: |