• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
tracy_yuan 2004年12月27日
请帮忙把Excel 调用数据透视的VBA翻译成可在Delphi下执行的代码
我的开发工具是Delphi ,后台数据库是interbase
从数据库得到这张表
Capacity RPM QTY
40 10K/4 1
10 5400 3
15 5400 3
20 5400 92
30 5400 5
40 5400 656
10 7200 11
120 7200 3
15 7200 5
160 7200 12
20 7200 11
30 7200 2
40 7200 239
60 7200 9
80 7200 19
120 7200/8 24
160 7200/8 3
20 7200/8 1
40 7200/8 1
60 7200/8 1
80 7200/8 2
要转成这样的格式
Product of QTY RPM
Capacity 5400 7200 10K/4 7200/8 (blank)
10 3 11
15 3 5
20 92 11 1
30 5 2
40 656 239 1 1
60 9 1
80 19 2
120 3 24
160 12 3
(blank)
我录制了宏代码
Sub Macro2()
'
' Macro2 Macro
' Macro recorded 2004-12-27 by Tracy
'

'
Cells.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'Total Summary Report'!C1:C3").CreatePivotTable TableDestination:="", _
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable1")
.ColumnGrand = False
.RowGrand = False
End With
ActiveSheet.PivotTables("PivotTable1").AddFields RowFields:="Capacity", _
ColumnFields:="RPM"
With ActiveSheet.PivotTables("PivotTable1").PivotFields("QTY")
.Orientation = xlDataField
.Caption = "Product of QTY"
.Function = xlProduct
End With
Range("J13").Select
Application.CommandBars("PivotTable").Visible = False
End Sub
请问如何翻成Delphi下可以执行的代码?谢谢

我试着翻但是
var

V : Variant;
begin
V := CreateOleObject('Excel.Application');
v.visible := true;
v.Workbooks.Add(1);
v.WorkBooks[1].WorkSheets[1].Cells[1,1] := 'Capacity';
v.WorkBooks[1].WorkSheets[1].Cells[1,2] := 'RPM';
v.WorkBooks[1].WorkSheets[1].Cells[1,3] := 'QTY';
if DataMod.IBQryfgi.RecordCount>0 then
begin
DataMod.IBQryfgi.First;
line := 2;
while not DataMod.IBQryfgi.Eof do
begin
v.WorkBooks[1].WorkSheets[1].Cells[line,1]:= trim(DataMod.IBQryfgi.Fieldbyname('c_capacity').AsString);
v.WorkBooks[1].WorkSheets[1].Cells[line,2]:= trim(DataMod.IBQryfgi.Fieldbyname('c_RPM').AsString);
v.WorkBooks[1].WorkSheets[1].Cells[line,3]:= trim(DataMod.IBQryfgi.Fieldbyname('QTY').AsString);
line:=line + 1;
DataMod.IBQryfgi.Next;
end;
end;

V.Cells.Select;
v.ActiveWorkbook.PivotCaches.SourceType:=1; //xlDatabase
end;


v.ActiveWorkbook.PivotCaches.SourceType:=1; //xlDatabase
show message : Source Type Can't autocreat

请帮忙翻成Delphi下可以执行的代码?谢谢
...全文
39 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
Delphi
创建于2007-08-02

1451

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告