请问如何将这个宏用Delphi语句写出,主要是第二句,因为行数不固定,需要动态宏(50分)

  • 主题发起人 主题发起人 天堂鸟6420
  • 开始时间 开始时间

天堂鸟6420

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何将这个宏用Delphi语句写出,主要是第二句,因为行数不固定,需要动态宏
Sub 宏1()
Range("C1:D1").Select
Selection.AutoFill Destination:=Range("C1:D17"), Type:=xlFillDefault
Range("C1:D17").Select
End Sub
//delphi程序
uses ComObj;
procedure Test;
var
Excel: variant;
begin
Excel := CreateExcelApp('统计表.xlt');
EXCEL.ActiveSheet.Range['C1','D1'].Select;
//这个第二句怎么写啊
// EXCEL.Selection.AutoFill.Destination := EXCEL.ActiveSheet.Range['BM5','BN' + inttostr(beginRow + Ir)];
// EXCEL.ActiveSheet.Selection.AutoFill.Type := xlFillDefault;
EXCEL.ActiveSheet.Range['C1','D17'].Select;
Excel.Visible := True;
end;
 
哪位老大给我回答一下好吗,不要嫌简单嘛。以身相许哦。。。可惜是个男的

本人对VB不熟悉,我相信对VB熟悉的大富翁来说应该不是大问题吗
 
你应该说明一下你原来的方法是怎样不行,我们才好判别原因。
 
执行这一句的时候
EXCEL.Selection.AutoFill.Destination := EXCEL.ActiveSheet.Range['BM5','BN' + inttostr(beginRow + Ir)];
出项以下提示:
Project Test.exe raised exception class EOleSysError with message '非选择性的参数。'. Process stopped. Use Step or Run to continue.
 
这个应该是一个过程,我在Delphi找到了
Excel.ActiveCell.AutoFill(ExcelApplication1.ActiveCell,xlFillDefault);
 
你那两句注释了的换成这个试试
EXCEL.ActiveSheet.Range['BM5','BN' + inttostr(beginRow + Ir)].AutoFill(EXCEL.ActiveSheet.Range['BM5','BN' + inttostr(beginRow + Ir)],xlFillDefault);
 
问题我已经解决了,其实是要把自动填充的属性重新赋值一次
EXCEL.CellDragAndDrop = True;
EXCEL.ActiveSheet.Range['BM5','BN5'].Select;
EXCEL.Selection.AutoFill(EXCEL.ActiveSheet.Range['BM5','BN' + inttostr(beginRow +Ir)]);
另外一个不是很急的问题:如何在EXCEL中每页的加一个页脚,页脚要求有本页小计和公司名称之类的一大堆东西(至少要几行).如果没有人回答就结贴了
 
可以录制宏来看一看怎么生成页脚
好像还得设置页边距,要不然装不下你的那一大堆东西,或者我给你一个其他建议,你先做一个模版,带页脚的,不过好像不行,你的东西是动态的,算我没说
 
谢谢你们,不过还想看看有没有人有更好的方法
顺便说一句,我的专家分怎么今天一下就多了100分!以前这么久了还一直是90分
 
因为你今天做了好事,奖的呗,不过只奖分数,不奖糖果的哦 :)
 
发分了:仙剑奇侠40 lhc4000 10
 
后退
顶部