用OLE调用宏的方法(100分)

  • 主题发起人 主题发起人 zcm1975117
  • 开始时间 开始时间
Z

zcm1975117

Unregistered / Unconfirmed
GUEST, unregistred user!
我用如下方法调用EXCEL的:
exlApp:=CreateoleObject('excel.application');
请问再这种方式下怎么调用我在VBA编辑器的写的宏定义!
 
copy the 宏定义 write by yourself to this program.Alter some word to delohi.
 
你好!
能不能请你说清楚一点,最好有一个DEMO!!真是太感谢了!!
 
demo,希望对你有用,
ExcelApp:=CreateOleObject('Excel.Application');
path:=ExtractFilePath(ParamStr(0));
path:=path+'aaa.xlt';
ExcelApp.WorkBooks.Add(path) ;
ExcelSheet := ExcelApp.Worksheets['基本情况'];
ExcelSheet.activate;
ExcelApp.Run('InsertRow');//调用宏
ExcelApp.Run('InsertCOL');//调用宏
Lrow:=3;
lCol:=4;
for i:=0 to FieldLst.Count-1 do
begin
ExcelSheet.Cells[2,i+lCol].Value:=FieldLst;
end;

谁能补充一下怎样调用带参数如字符串的宏吗?
 
我也想知道
 
请问为什么我不能用createoleobject这个函数 我的格式是:exlApp:=CreateoleObject('excel.application');
他说认不了createoleobject这个函数,小弟邮箱:xiehui_@163.net
 
在uese中加上comobj
 
autoole 也可以吧
 
这是我回答http://www.delphibbs.com/delphibbs/dispq.asp?LID=1211328的答案,我
想自己插入宏的话,应该就能输入参数了。

var
LineNo: integer;
CM: CodeModule;
NewToolbar: CommandBar;
ToolbarItem: CommandBarControl;
begin
WBk.ConnectTo(Excel.Workbooks[1]);
CM := WBk.VBProject.VBComponents.Item(
'ThisWorkbook').Codemodule;

{ Insert the macro text }
LineNo:=1;
CM.InsertLines(LineNo + 1, 'Public Sub ShowSuccess');
CM.InsertLines(LineNo + 2, ' Msgbox("Made it!")');
CM.InsertLines(LineNo + 3, 'End Sub');

{ Create temporary toolbar - set last parameter to False
to make a permanent toolbar }
NewToolBar := Excel.CommandBars.Add(
'MyToolbar', msoBarTop, False, True);
OleVariant(NewToolbar).Visible := True;
ToolbarItem := NewToolbar.Controls.Add(
msoControlButton, EmptyParam,
EmptyParam, EmptyParam, True);
ToolbarItem.Set_TooltipText('Show success');

OleVariant(ToolbarItem).OnAction :=
'ThisWorkbook.ShowSuccess';
OleVariant(ToolbarItem).FaceID := 2;
------------------
这是我在网上看到过的一段代码,希望能有帮助
 
调用带参数的宏:
在excel中编辑宏,将首句加参数为
Sub macro1(FPath As String)
在delphi中加上
S:='C:/ABC';
ExcelApp.Run('macro1',S);
即可
 
这么麻烦?!
 
后退
顶部