设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5224|回复: 7

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

  [复制链接]
发表于 2012-3-28 22:25:21 | 显示全部楼层 |阅读模式
小妹想通过 plant simulation 的命令控制相关的excel 文件的行为。但是一直被说语句错误。。。我是这样写的:
4 A- D4 N- U1 f9 H6 x! okanal:= DDEConnect("Excel", "Cost");
& V  j+ }. ~2 r0 I0 JDDEExecute(kanal,"Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value", 1000);+ Z% Y- X: ~2 O% i) o# s: p& |
DDEExecute(kanal,"Worksheets("Cost").Range("B121").Value = 35", 1000);
) m& K, T1 g& k0 e3 K4 vDDEDisconnect(kanal);
; g" r* t0 ^0 _% S" D# w8 r* _系统一直报错,说语法有错。。。excecute 语句里的 cost那里有问题。。。。
) s/ q8 F4 a/ L( I; G+ `' M& p5 U) P" z6 n# L9 u) p! v
请高手们不吝赐教~~小妹先谢过了~~~~
 楼主| 发表于 2012-3-29 16:43:02 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 17:47 编辑
5 Q, i9 `. m) [. `$ C0 a* G5 @' j9 d3 `, \

- P( m7 W$ f+ h$ l木有人理我么?5 }# p, M& ^' R# z& ?, G1 J8 h
6 ]# W" k2 X* H4 q: ^, H" J
我去理解了一下系统的报错。。。我觉得是因为系统把头两个引号看作了一对,导致 "Worksheets(" 成了输出的command,而后面那一串电脑就自然不认识了。。。。所以我就试着用中括号把command整个给括起来~写成了这样:7 t2 k6 x6 G" ]$ I4 ]3 a
5 F" x2 a4 l6 d3 Q2 i
DDEExecute(kanal,"[Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value]", 1000);
& a; O  v9 m& A! M+ w+ _0 X
9 |3 h' c6 F/ n* |: n7 C( V* f但是还是不行~~~有没有高人能给我指点一下~~我应该用一个什么方法把这样的command输入excel??
 楼主| 发表于 2012-3-29 17:48:15 | 显示全部楼层
 楼主| 发表于 2012-3-29 21:57:39 | 显示全部楼层
taoyifei2000 发表于 2012-3-29 21:37 , @3 s+ ]/ Q3 S! Y- {8 j: T' h
dde确实没用过,不过之前用过其它接口,不知道有没有共性。/ ?" |, m3 k" m7 P: r& x5 p1 k" f! `

1 d2 N) q) _  o" n) a触发语句是这样写的execute("        'cost'   ...
5 Y% m" @9 ]' T6 Z+ P. [  L0 r
谢谢你~~我试了~~不报错也不执行。。。电脑沉默了。。。
 楼主| 发表于 2012-3-29 22:03:28 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 22:10 编辑 4 ?/ A- Y5 L/ {2 l, l( p' ^. A
taoyifei2000 发表于 2012-3-29 21:37
7 Z+ V$ Y2 z" q* E1 d% S* D# Vdde确实没用过,不过之前用过其它接口,不知道有没有共性。, ~0 g, \: t3 D4 L  G* ^# X

+ t& k5 U6 s0 c' h触发语句是这样写的execute("        'cost'   ...

0 D0 x" r0 s& `& x2 R
4 ?2 v6 ?  |6 {! S, ~% X7 [不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde的热键连上。。。不知道这样行不行~~我去试试。。. y( k, Z, ~6 [- {3 G
9 E* z0 {% |- I" g, n7 Q
诶不对阿。。。连热键是单纯的传数据啊。。。。哎呀。。。就结了。。。
发表于 2012-3-29 23:13:45 | 显示全部楼层
本帖最后由 五五 于 2012-3-29 23:16 编辑 ! d: m5 w  x, l* p+ B  B- W
若叶繁茂 发表于 2012-3-29 22:03 : t: Q' f5 b8 {) ?9 k
不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde ...
' l  y1 j+ C/ D3 |0 f3 O9 B6 J
5 t! L* c# H2 }6 Y
我也没用过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
) ^" \$ m6 v, {2 _; \1 S我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的  ...

0 r+ C7 U. C  h  I8 L* d$ i, e; R谢谢~~前两天突然不能回贴。。。今天发现我的邮箱没激活。。。好奇怪。。。4 u* K; ]+ n, p4 h

" [# Z+ H+ z9 a我想向你详细请教一下activeX 的execute语句。。。我的目的是指挥excel运行一个宏。
3 x& ?0 I, t9 E" ~9 J, v按照plant simulation自带的例子拖了一个activeX控件和一个link到我的network里面来。并且控件已改成了 excel.application。link 跟我的excel文件已经连接。于是我写了:
. i! W% O  S% ^# z! p- {( E, Q6 I9 Ris- w; h" X. o' i
        xl: any;
1 [1 V0 z7 b/ t1 t  v% o8 t) Hdo
% _) M2 I; f5 P% y: `' E        if ActiveX.active then
( j$ Q! \7 U5 i+ b9 i( \6 c                xl:= activex.application;
) `3 x/ E' ~& g. e8 s0 H: o- l; }                xl.call ("Macro_Reset");. N4 V8 k1 r# v5 W% b1 ]. [
                activex.active:= false;# q6 d6 V: L( h& W* s8 w
        end;8 f) l  c3 c( ?3 H" q6 Q
        + G1 K% M3 K( A8 m
end;
. X# ?3 f$ ?- f" K- V* z! `/ _9 T4 M, F  o
显然plant simulation 不认识 xl.call ("Macro_Reset"); 这句话。你之前有提到过一个activeX 的execute的语句~我在帮助里面木有找到,所以还是想问问~~
$ I5 f3 e3 L2 M1 ~) K) `8 k( b" B/ q; D" P5 y
期待你的恢复~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 20:17 , Processed in 0.014665 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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