EXCEL OLE 的问题请大侠速来批正.<<<<<<<<<<<<<<&gt

  • 主题发起人 主题发起人 小草
  • 开始时间 开始时间

小草

Unregistered / Unconfirmed
GUEST, unregistred user!
EXCEL OLE 的问题请大侠速来批正.<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>(200分)<br />在EXCEL的宏中得到如下语句在DELPHI中我不知道怎么写求救.
Rows("2:63").Select
Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3, 4, 5, 6, _
7, 8, 9), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub
请大家参考 http://www.delphibbs.com/delphibbs/dispq.asp?lid=759711
我不会写
 
selection.subtotal(2,xlSum,3,4,5,6,7,8,9,true,false,true)

try!
 
selectioni不通过
 
找yzhshi帮你看看,如果他有时间的话.
 
先select,再selection!
 
不知对你有无帮助。
  1.创建Excel对象
  eole=CREATEOBJECT(′Excel.application′)
  2.添加新工作簿
  eole.Workbooks.add
  3.设置第3个工作表为激活工作表
  eole.Worksheets(″sheet3″).Activate
  4.打开指定工作簿
  eole.Workbooks.Open(″c:/temp/ll.xls″)
  5.显示Excel窗口
  eole.visible=.t.
  6.更改Excel标题栏
  eole.Caption=″VFP应用程序调用Microsoft Excel″
  7.给单元格赋值
  eole.cells(1,4).value=XM(XM为数据库字段名)
  8.设置指定列的宽度(单位:字符个数)
  eole.ActiveSheet.Columns(1).ColumnWidth=5
  9.设置指定行的高度(单位:磅)
  eole.ActiveSheet.Rows(1).RowHeight=1/0.035
  (设定行高为1厘米,1磅=0.035厘米)
  10.在第18行之前插入分页符
  eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1
  11.在第4列之前删除分页符
  eole.ActiveSheet.Columns(4).PageBreak=0
  12.指定边框线宽度(Borders参数如下)
  ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3
  13.设置四个边框线条的类型
  eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1
  (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)
  14.设置页眉
  eole.ActiveSheet.PageSetup.CenterHeader=″报表1″
  15.设置页脚
  eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″
  16.设置页眉到顶端边距为2厘米
  eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
  17.设置页脚到底边距为3厘米
  eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
 18.设置顶边距为2厘米
  eole.ActiveSheet.PageSetup.TopMargin=2/0.035
  19.设置底边距为4厘米
  eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
  20.设置左边距为2厘米
  veole.ActiveSheet.PageSetup.LeftMargin=2/0.035
  21.设置右边距为2厘米
  eole.ActiveSheet.PageSetup.RightMargin=2/0.035
  22.设置页面水平居中
  eole.ActiveSheet.PageSetup.CenterHorizontally=.t.
  23.设置页面垂直居中
  eole.ActiveSheet.PageSetup.CenterVertically=.t.
  24.设置页面纸张大小(1-窄行8?5?11 39-宽行14?11)
  eole.ActiveSheet.PageSetup.PaperSize=1
  25.打印单元格网线
  eole.ActiveSheet.PageSetup.PrintGridlines=.t.
  26.拷贝整个工作表
  eole.ActiveSheet.UsedRange.Copy
  27.拷贝指定区域
  eole.ActiveSheet.Range(″A1:E2″).Copy
  28.粘贴
  eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial
  29.在第2行之前插入一行
  eole.ActiveSheet.Rows(2).Insert
  30.在第2列之前插入一列
  eole.ActiveSheet.Columns(2).Insert
  31.设置字体
  eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″
  32.设置字体大小
  eole.ActiveSheet.Cells(1,1).Font.Size=25
  33.设置字体为斜体
  eole.ActiveSheet.Cells(1,1).Font.Italic=.t.
  34.设置整列字体为粗体
  eole.ActiveSheet.Columns(1).Font.Bold=.t.
  35.清除单元格公式
  eole.ActiveSheet.Cells(1,4).ClearContents
  36.打印预览工作表
  eole.ActiveSheet.PrintPreview
  37.打印输出工作表
  eole.ActiveSheet.PrintOut
  38.工作表另为
  eole.ActiveWorkbook.SaveAs(″c:/temp/22.xls″)
  39.放弃存盘
  eole.ActiveWorkbook.saved=.t.
  40.关闭工作簿
  eole.Workbooks.close
  41.退出Excel
  eole.quit

 
宏的语法其实是VB的
转化一下就可以了
给Rows什么加个类试试,比如ExcelSheel什么的
 
接受答案了.
 
后退
顶部