起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 258|回复: 14

【结贴】操作Excel图表代码如何翻译?

[复制链接]
发表于 2009-8-6 10:09:44 | 显示全部楼层 |阅读模式
操作如下:选择图表页,右键‘源数据’,修改‘数据区域’。
宏命令代码如下:
  ActiveChart.PlotArea.Select
    ActiveChart.SetSourceData Source:=Sheets("123").Range("A3:E10"), PlotBy:= _ xlColumns

在平台中如何翻译?
回复

使用道具 举报

发表于 2009-8-6 10:12:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 10:37:50 | 显示全部楼层
如下代码:
    d1 := DispatchHelper.Create(worksheet.PropertyGet('PlotArea', []));
    d1.InvokeMethod('Select',[]);
    d2 := DispatchHelper.Create(worksheet.PropertyGet('SetSourceData', []));
    d2.PropertyPut('Source',['Sheet1','A3:E10']);

提示'PlotArea'方法无效
回复 支持 反对

使用道具 举报

发表于 2009-8-6 10:42:24 | 显示全部楼层
2楼链接中的3楼,你看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 11:12:01 | 显示全部楼层
3楼的方法看了,如下  :

Function Select()
    Excel.PlotArea 的成员   select事件没有其他参数啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 11:14:49 | 显示全部楼层
你那电话 咋打不通
回复 支持 反对

使用道具 举报

发表于 2009-8-6 11:54:58 | 显示全部楼层
不会吧?电话可以通的呀。

d1 := DispatchHelper.Create(worksheet.PropertyGet('PlotArea', []));你是这句有问题,那就要找'PlotArea'对应的是属于哪个对象。(他是chart的对象,那你怎么能拿worksheet去做呢。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 13:02:51 | 显示全部楼层
代码如下:
    oExcel:= ComObj.CreateOleObject('Excel.Application');
    app := DispatchHelper.Create(oExcel);
    app.PropertyPut('Visible', [False]);
    app.PropertyPut('DisplayAlerts', [False]);

    workbooks := DispatchHelper.Create(app.PropertyGet('Workbooks',[]));
    workbook := DispatchHelper.Create(workbooks.InvokeMethod('Open',[False],[fName]));
    worksheets := System.DispatchHelper.Create(workbook.PropertyGet('charts',[]));

    worksheet := System.DispatchHelper.Create(worksheets.PropertyGet('Item',[2]));
    d1 := DispatchHelper.Create(worksheet.PropertyGet('PlotArea', []));
    d1.InvokeMethod('Select',[]);
    d2 := DispatchHelper.Create(worksheet.PropertyGet('SetSourceData', []));
    d2.PropertyPut('Source',['Sheet1','A3:E10']);

看下是那里不合理
回复 支持 反对

使用道具 举报

发表于 2009-8-6 13:11:39 | 显示全部楼层
上面的代码运行时哪里报错就说明用的不对。具体需要对照着vba帮助看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 14:51:13 | 显示全部楼层
worksheets := System.DispatchHelper.Create(workbook.PropertyGet('charts',[]));
    worksheet := System.DispatchHelper.Create(worksheets.PropertyGet('Item',[2]));
    worksheet.InvokeMethod('Activate',[]);
    d1 := DispatchHelper.Create(worksheet.PropertyGet('PlotArea', []));
    d1.InvokeMethod('Select',[]);
    d2 := System.DispatchHelper.Create(worksheet.InvokeMethod('SetSourceData',[]));  //---这句报错
    d2.PropertyPut('Source',['Sheet1','A3:E10']);

现在创建'SetSourceData'方法时 提示参数不对 ,帮我看看.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 08:46 , Processed in 0.042724 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表