设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4707|回复: 7

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

  [复制链接]
发表于 2012-3-28 22:25:21 | 显示全部楼层 |阅读模式
小妹想通过 plant simulation 的命令控制相关的excel 文件的行为。但是一直被说语句错误。。。我是这样写的:2 L6 B8 `* b* s' [  c; ~0 d: m- X2 _
kanal:= DDEConnect("Excel", "Cost");& M8 w9 c( _4 a' u- Z
DDEExecute(kanal,"Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value", 1000);
  F, ^9 W! ^% Q" VDDEExecute(kanal,"Worksheets("Cost").Range("B121").Value = 35", 1000);5 d# M9 T' @1 I6 L4 M3 L
DDEDisconnect(kanal);
. w" F- L, D; P8 l5 p: X系统一直报错,说语法有错。。。excecute 语句里的 cost那里有问题。。。。
5 h; _( u  R0 u# P' D1 n" s% i7 i2 f' h4 m
请高手们不吝赐教~~小妹先谢过了~~~~
 楼主| 发表于 2012-3-29 16:43:02 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 17:47 编辑 " ?. Q- u* a; J2 a4 V
! i5 x% O$ P$ J- z. [6 X
" R6 ^' ^' `" c& c7 Q
木有人理我么?! j9 z  B0 U1 n# P) X
4 z8 y2 T. R! O4 N: v  f: x
我去理解了一下系统的报错。。。我觉得是因为系统把头两个引号看作了一对,导致 "Worksheets(" 成了输出的command,而后面那一串电脑就自然不认识了。。。。所以我就试着用中括号把command整个给括起来~写成了这样:8 ~: f+ N: _" R$ ?( M& ?

& [. k2 `8 ?  ?! P% L. SDDEExecute(kanal,"[Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value]", 1000);- U4 d; Y1 U: k# J7 t
4 ^/ y4 v6 Q' c3 B; n
但是还是不行~~~有没有高人能给我指点一下~~我应该用一个什么方法把这样的command输入excel??
 楼主| 发表于 2012-3-29 17:48:15 | 显示全部楼层
 楼主| 发表于 2012-3-29 21:57:39 | 显示全部楼层
taoyifei2000 发表于 2012-3-29 21:37
! }; h2 w; d; l* x1 U2 mdde确实没用过,不过之前用过其它接口,不知道有没有共性。& p+ L% B3 j: \3 y7 }
; j  f2 h, _3 x8 B
触发语句是这样写的execute("        'cost'   ...
4 ?" c1 @  D4 U9 U3 A- L
谢谢你~~我试了~~不报错也不执行。。。电脑沉默了。。。
 楼主| 发表于 2012-3-29 22:03:28 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 22:10 编辑 * v! [. `( U9 j# V- u7 g
taoyifei2000 发表于 2012-3-29 21:37
, _& d7 U2 l7 G0 U' z. ]8 {2 b+ m- cdde确实没用过,不过之前用过其它接口,不知道有没有共性。
( G) b# d  y( y" G* o" r( S( {8 X+ }- H& i# O8 z
触发语句是这样写的execute("        'cost'   ...

5 W1 T5 a) J6 S0 r! r6 |+ ~( @
% M% H" x, o5 J& g不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde的热键连上。。。不知道这样行不行~~我去试试。。0 {* X. d6 v7 g2 Q* G: N( [
! h4 b7 U! p8 o# E. f2 @) b3 a& E
诶不对阿。。。连热键是单纯的传数据啊。。。。哎呀。。。就结了。。。
发表于 2012-3-29 23:13:45 | 显示全部楼层
本帖最后由 五五 于 2012-3-29 23:16 编辑 4 h/ i) D: @' t1 a$ n* Q6 r8 ?
若叶繁茂 发表于 2012-3-29 22:03
$ L& B9 F, @- u6 g: a不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde ...
. C/ A1 c2 w8 e. w% X  v$ m" `$ l
/ M' Q  w. i9 g# A
我也没用过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 8 b; H; g, \' x6 I+ F' @5 ?! ~
我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的  ...
- \  D( `  R( U* D2 B8 J6 @4 m
谢谢~~前两天突然不能回贴。。。今天发现我的邮箱没激活。。。好奇怪。。。
" z" N# _& h; |' f
/ H7 X7 i8 V1 T) U! S' S3 C3 |我想向你详细请教一下activeX 的execute语句。。。我的目的是指挥excel运行一个宏。$ n$ `! V# c2 \/ Z7 q! r( a: U
按照plant simulation自带的例子拖了一个activeX控件和一个link到我的network里面来。并且控件已改成了 excel.application。link 跟我的excel文件已经连接。于是我写了:$ P: W" c( m* D, K' I$ u; Q
is+ D) y# @- v5 H6 G; s7 T. A0 `% D$ z
        xl: any;
- b- z: ^* \& n! Fdo
( q# e) t; n: u" P& j( P9 q. ^        if ActiveX.active then
4 w) V8 s/ X- _3 {( P& X# K                xl:= activex.application;
) C" w, o0 f( b( _0 V                xl.call ("Macro_Reset");' @( O; V: |  l' b
                activex.active:= false;8 F; n: I7 x$ i- @" T+ ~
        end;- Q, G" ]+ o: M+ ~3 ^+ r
       
. @1 }8 y3 G, \; D3 P' eend;
0 c2 Y# q  Y8 j. R
; @; g6 E: }$ N5 z* ]( Q显然plant simulation 不认识 xl.call ("Macro_Reset"); 这句话。你之前有提到过一个activeX 的execute的语句~我在帮助里面木有找到,所以还是想问问~~0 k+ P% ?  c6 r! F/ S  B5 Y

+ m$ |( R9 @" G1 g1 A8 R期待你的恢复~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-1 01:31 , Processed in 0.016574 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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