设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5420|回复: 7

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

  [复制链接]
发表于 2012-3-28 22:25:21 | 显示全部楼层 |阅读模式
小妹想通过 plant simulation 的命令控制相关的excel 文件的行为。但是一直被说语句错误。。。我是这样写的:
' t- D; t# {! {+ akanal:= DDEConnect("Excel", "Cost");
) H& L  r( x4 @) C- bDDEExecute(kanal,"Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value", 1000);/ b$ }( o& j5 V7 \2 T5 H9 J6 V
DDEExecute(kanal,"Worksheets("Cost").Range("B121").Value = 35", 1000);
: h- g; h( b* c# M8 p! G- n9 V9 ADDEDisconnect(kanal);
3 h4 f; ~3 r- F7 J7 f- v, Z. m/ e系统一直报错,说语法有错。。。excecute 语句里的 cost那里有问题。。。。
" ^2 i  N9 L9 D9 v9 S; }; y* i# z
, h. x$ t; N& T& f2 d' d请高手们不吝赐教~~小妹先谢过了~~~~
 楼主| 发表于 2012-3-29 16:43:02 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 17:47 编辑
) g0 {2 K$ {+ C0 n- z/ q8 I' V/ x
' e; Z7 m" I+ P9 C! z/ }" @  I& Y
$ q- ?, {5 o/ M/ n8 h: i* D0 d$ n木有人理我么?4 i4 y2 X* b' O8 w' u9 ~

, j1 M) t! K' g( Q+ z; m我去理解了一下系统的报错。。。我觉得是因为系统把头两个引号看作了一对,导致 "Worksheets(" 成了输出的command,而后面那一串电脑就自然不认识了。。。。所以我就试着用中括号把command整个给括起来~写成了这样:6 k% q5 K+ t' K9 B& p# Q

& \6 `$ D. C* X) _" @8 MDDEExecute(kanal,"[Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value]", 1000);
1 b+ D% a$ A% N: p2 Y, Y; V; J
2 v- R1 r; X& S3 N7 l' \5 @5 g但是还是不行~~~有没有高人能给我指点一下~~我应该用一个什么方法把这样的command输入excel??
 楼主| 发表于 2012-3-29 17:48:15 | 显示全部楼层
 楼主| 发表于 2012-3-29 21:57:39 | 显示全部楼层
taoyifei2000 发表于 2012-3-29 21:37
6 h( ^& p5 h! e! M: Jdde确实没用过,不过之前用过其它接口,不知道有没有共性。! `7 @, x" Z( t0 w, G  p0 z
* V$ S6 M* ~, Z2 [. u1 r  Z) y
触发语句是这样写的execute("        'cost'   ...
" D7 _9 b, ]3 Z# s1 ^9 d- v+ F3 s
谢谢你~~我试了~~不报错也不执行。。。电脑沉默了。。。
 楼主| 发表于 2012-3-29 22:03:28 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 22:10 编辑
4 \. |! f$ s; g% D9 U
taoyifei2000 发表于 2012-3-29 21:37
) q- U+ M- h: V9 l% hdde确实没用过,不过之前用过其它接口,不知道有没有共性。
, j) L4 B& K9 M  q/ b' Q3 n
( k; c5 \& ]! b触发语句是这样写的execute("        'cost'   ...
( H7 M  E- Y/ c" r

# }1 a$ b8 ]5 Q) D6 s不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde的热键连上。。。不知道这样行不行~~我去试试。。
/ y7 e) X0 X3 P* c0 G" q& B, T, `8 w; Z3 x
诶不对阿。。。连热键是单纯的传数据啊。。。。哎呀。。。就结了。。。
发表于 2012-3-29 23:13:45 | 显示全部楼层
本帖最后由 五五 于 2012-3-29 23:16 编辑 % s% z" g! S  Y- L& e" u, g$ H
若叶繁茂 发表于 2012-3-29 22:03 . F% y8 B( v7 c( b1 D6 U! G
不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde ...
7 w9 p; L# O: I& v" c
, e& j6 `. q, q$ Y, t1 M
我也没用过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
) Y4 t$ z) t5 A* `, t$ O我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的  ...
) H* ^- G" Y% F. Z$ w4 H
谢谢~~前两天突然不能回贴。。。今天发现我的邮箱没激活。。。好奇怪。。。5 ~- |* H6 ?  d9 q
/ g# W/ u2 p0 a) f
我想向你详细请教一下activeX 的execute语句。。。我的目的是指挥excel运行一个宏。% h$ {# v( Z& C! O; O/ r3 l
按照plant simulation自带的例子拖了一个activeX控件和一个link到我的network里面来。并且控件已改成了 excel.application。link 跟我的excel文件已经连接。于是我写了:
  e- e# d6 F; ^is
) F& ]+ g# V) B        xl: any;: ^- C) K( V+ w0 F* M& j
do" v, U1 _+ ?2 B' L( P
        if ActiveX.active then5 ?; \( y% g4 m7 K4 U3 ?) E
                xl:= activex.application;1 b) e" \  e, y, I: a. n9 p$ k
                xl.call ("Macro_Reset");4 ^2 ]$ H9 ?6 q0 ?5 T- N
                activex.active:= false;
, V* J7 R+ O; j' }# l) u& v        end;
# E: |7 d% I3 f       
; m# Z+ M8 a7 m7 F. Eend;6 J" j% r$ b" {% t
! x" T4 z1 L+ w9 w2 @
显然plant simulation 不认识 xl.call ("Macro_Reset"); 这句话。你之前有提到过一个activeX 的execute的语句~我在帮助里面木有找到,所以还是想问问~~1 r8 n, `+ a8 S% D6 i

) V6 J. ?6 e0 {$ Z$ u% c期待你的恢复~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 13:05 , Processed in 0.020061 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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