设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4680|回复: 7

[求助] 请教关于em-Plant做client的DDEExecute的应用

  [复制链接]
发表于 2012-3-28 22:25:21 | 显示全部楼层 |阅读模式
小妹想通过 plant simulation 的命令控制相关的excel 文件的行为。但是一直被说语句错误。。。我是这样写的:5 @: C, I3 ]( c$ w
kanal:= DDEConnect("Excel", "Cost");
4 I- s) m2 }6 O. m# ^, |' e; ~/ h% I  o# sDDEExecute(kanal,"Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value", 1000);
0 `! j2 x2 c& q; o& ?# rDDEExecute(kanal,"Worksheets("Cost").Range("B121").Value = 35", 1000);! L* `# D: t! }! r0 m
DDEDisconnect(kanal);; I6 z6 N  p0 b8 B
系统一直报错,说语法有错。。。excecute 语句里的 cost那里有问题。。。。
, T* H8 o% E6 f* a, N+ b1 H: e: U5 S6 G" E. X
请高手们不吝赐教~~小妹先谢过了~~~~
 楼主| 发表于 2012-3-29 16:43:02 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 17:47 编辑
  t" |( _- N7 u4 t4 Z5 E! b+ \! y. H% Q# {9 r9 d
  \7 g: {% O' ]: R) c
木有人理我么?% i1 @# V& ?: K6 K5 [9 }( f
9 H. b6 I3 H( A. {+ a: z0 q0 ^( i
我去理解了一下系统的报错。。。我觉得是因为系统把头两个引号看作了一对,导致 "Worksheets(" 成了输出的command,而后面那一串电脑就自然不认识了。。。。所以我就试着用中括号把command整个给括起来~写成了这样:
+ W$ Q- r8 a/ _4 F
0 D  s1 W' i  p" P% H) U9 L. bDDEExecute(kanal,"[Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value]", 1000);: t& q) a- M2 E

" o, E5 {2 [% G! {0 U. d& w0 J; C. }但是还是不行~~~有没有高人能给我指点一下~~我应该用一个什么方法把这样的command输入excel??
 楼主| 发表于 2012-3-29 17:48:15 | 显示全部楼层
 楼主| 发表于 2012-3-29 21:57:39 | 显示全部楼层
taoyifei2000 发表于 2012-3-29 21:37 ( ]7 ?. v  Z; Q& z( y% {
dde确实没用过,不过之前用过其它接口,不知道有没有共性。2 x$ }: b/ C% z
6 B- [3 H( W- a  c
触发语句是这样写的execute("        'cost'   ...

; Z* L. L3 |1 a: J" L5 X6 }谢谢你~~我试了~~不报错也不执行。。。电脑沉默了。。。
 楼主| 发表于 2012-3-29 22:03:28 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 22:10 编辑
% Y8 h' ~- E& y7 x2 A
taoyifei2000 发表于 2012-3-29 21:37 & {% j* n$ q0 M+ b' `
dde确实没用过,不过之前用过其它接口,不知道有没有共性。
0 Z+ T. ?* N) m" \( z( l. \" w  A  X2 r. u# m, p+ m. n
触发语句是这样写的execute("        'cost'   ...

2 i% L& ~+ ^7 R
8 G9 C; b8 ]9 ]$ G不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde的热键连上。。。不知道这样行不行~~我去试试。。
- N& Q, w) Y: r4 @9 |
% }& X$ p/ f- ^% w, J1 J诶不对阿。。。连热键是单纯的传数据啊。。。。哎呀。。。就结了。。。
发表于 2012-3-29 23:13:45 | 显示全部楼层
本帖最后由 五五 于 2012-3-29 23:16 编辑
% J! p  A. }/ t2 J& D* J* K
若叶繁茂 发表于 2012-3-29 22:03 % Q1 L8 `/ J( a* x
不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde ...

/ r, \' `& \  w( @5 p  W* J# z" [6 B5 q/ e
我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的 觉得效果还行。。。
发表于 2012-3-29 23:15:32 | 显示全部楼层
还有我按照你的语句写了一下 电脑并不沉默 但是只是单纯的把 Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value 这一段内容作为字串赋值到excel里面了 囧。。。不知道为啥。。。
 楼主| 发表于 2012-4-2 20:50:13 | 显示全部楼层
五五 发表于 2012-3-29 23:13 / o% F3 G. V( C7 X0 S7 T+ @& U
我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的  ...
7 y* K. w2 w( C6 j* C
谢谢~~前两天突然不能回贴。。。今天发现我的邮箱没激活。。。好奇怪。。。
$ f, y* y5 a1 f+ l% z4 w0 m  ^
* n: t8 Y. G* K  v8 g, H& ~我想向你详细请教一下activeX 的execute语句。。。我的目的是指挥excel运行一个宏。" H) O* ^: F  h5 P6 J6 a# p7 q. z
按照plant simulation自带的例子拖了一个activeX控件和一个link到我的network里面来。并且控件已改成了 excel.application。link 跟我的excel文件已经连接。于是我写了:
4 P2 X5 M+ c; ?( cis
) s; E1 ~- _" t) k; O        xl: any;: B3 p% B) p5 A( ]  e- D
do2 j! R; F! R  X% W
        if ActiveX.active then6 U/ _8 K& ?6 E
                xl:= activex.application;/ D" f4 I6 Y6 w3 n* ^
                xl.call ("Macro_Reset");
" M0 P3 F: j; \5 J                activex.active:= false;' J: N% w1 ?1 ^* ^; t
        end;1 x  q$ C5 U- N* q5 a9 _
       
1 `; `. f  u& p& ?end;7 V7 N$ F2 P& j& l- r

+ f1 q& Q. V! ]  `显然plant simulation 不认识 xl.call ("Macro_Reset"); 这句话。你之前有提到过一个activeX 的execute的语句~我在帮助里面木有找到,所以还是想问问~~
) B- V/ s. Z7 A8 u2 r- Y
$ o( z4 @; q* f, {1 E0 l9 A$ q期待你的恢复~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2025-10-26 23:38 , Processed in 0.015289 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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