设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5554|回复: 7

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

  [复制链接]
发表于 2012-3-28 22:25:21 | 显示全部楼层 |阅读模式
小妹想通过 plant simulation 的命令控制相关的excel 文件的行为。但是一直被说语句错误。。。我是这样写的:
  @' E2 s  b& D( kkanal:= DDEConnect("Excel", "Cost");
. d; ?$ C. x. {8 ]DDEExecute(kanal,"Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value", 1000);
5 |" H  B1 V4 H! p1 ^9 nDDEExecute(kanal,"Worksheets("Cost").Range("B121").Value = 35", 1000);& n9 D8 j* l1 m. E
DDEDisconnect(kanal);
" `# w+ J9 D8 [. U' G- ~系统一直报错,说语法有错。。。excecute 语句里的 cost那里有问题。。。。. F. [' \' B8 _; N
) E2 ~& q$ k' {( O* q0 L3 W0 L, m. I$ J
请高手们不吝赐教~~小妹先谢过了~~~~
 楼主| 发表于 2012-3-29 16:43:02 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 17:47 编辑
% B% T% F1 K4 O, |. Y2 W: ?. j) X, a- O, F

" r: h4 i0 H# m5 e4 e木有人理我么?
" x7 H, c" [  l9 R. B: f0 O% f! [" z9 M- y  U9 P! @; g) {$ u
我去理解了一下系统的报错。。。我觉得是因为系统把头两个引号看作了一对,导致 "Worksheets(" 成了输出的command,而后面那一串电脑就自然不认识了。。。。所以我就试着用中括号把command整个给括起来~写成了这样:5 J2 T) g8 l( b) J8 L! n
5 I6 T% K  G  i$ J
DDEExecute(kanal,"[Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value]", 1000);; X. x1 F" A: Q- @! ~* O
  u/ i8 ]. }5 x. j3 {
但是还是不行~~~有没有高人能给我指点一下~~我应该用一个什么方法把这样的command输入excel??
 楼主| 发表于 2012-3-29 17:48:15 | 显示全部楼层
 楼主| 发表于 2012-3-29 21:57:39 | 显示全部楼层
taoyifei2000 发表于 2012-3-29 21:37 & X- W; d4 E1 Y. I4 `& i: T
dde确实没用过,不过之前用过其它接口,不知道有没有共性。
- R, _* N9 G& a7 H4 R
4 V. t6 c/ q+ a+ f* g- y触发语句是这样写的execute("        'cost'   ...
4 y6 Y& @. W0 {/ c0 }3 U- Y
谢谢你~~我试了~~不报错也不执行。。。电脑沉默了。。。
 楼主| 发表于 2012-3-29 22:03:28 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 22:10 编辑
8 p( q- B' G! ?5 G- R' Q. K
taoyifei2000 发表于 2012-3-29 21:37 ' ]; O6 B( a" H. X# r
dde确实没用过,不过之前用过其它接口,不知道有没有共性。) Z. g; u. o0 y- P, ^

1 a- Z" U4 Z2 m5 j% O0 L2 i触发语句是这样写的execute("        'cost'   ...
- L" P9 t  C* [1 u* W9 y
) c4 H# [6 D) i; x
不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde的热键连上。。。不知道这样行不行~~我去试试。。
7 l) }0 k: e7 z+ }( m" \! F) U' ~4 r# @0 l
诶不对阿。。。连热键是单纯的传数据啊。。。。哎呀。。。就结了。。。
发表于 2012-3-29 23:13:45 | 显示全部楼层
本帖最后由 五五 于 2012-3-29 23:16 编辑
! P6 n+ e- b2 Q1 C6 G; U
若叶繁茂 发表于 2012-3-29 22:03 + N$ Y8 R( n, l+ u7 Q0 Q& E
不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde ...
$ [- K7 Q& _+ Z2 A
0 Q8 V$ u/ x7 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 ( m% v* a7 S& `8 g0 V3 w1 Y" b/ g
我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的  ...
4 y: ~7 Z3 `' P( D* b" g; I! C+ T
谢谢~~前两天突然不能回贴。。。今天发现我的邮箱没激活。。。好奇怪。。。
0 Y9 g. x: ?5 U$ Q
+ l: y6 ^& d* {我想向你详细请教一下activeX 的execute语句。。。我的目的是指挥excel运行一个宏。1 \% k9 J; M! _0 o& k
按照plant simulation自带的例子拖了一个activeX控件和一个link到我的network里面来。并且控件已改成了 excel.application。link 跟我的excel文件已经连接。于是我写了:# S; @7 |# F: ?2 P( |; O
is
1 j+ _3 {$ l$ \  {8 W        xl: any;( S3 H$ D4 O. R5 Z) K$ t, {
do
$ S, L, D# d3 C8 {# P+ G        if ActiveX.active then! W2 i& ^. E6 |+ [0 ?7 F& W
                xl:= activex.application;$ {9 e% Q1 D; g* Z) R7 U
                xl.call ("Macro_Reset");
8 |8 W0 P+ b% b- p& J                activex.active:= false;+ y3 B5 H4 F1 l$ r% c
        end;
. i& w6 C% M# z- Y: H9 r+ l        . F1 b+ r" Z/ R: J2 f5 G2 M
end;
: ]% [$ B& y* Y+ J7 b" a5 L$ h+ S( ?7 k+ F! S# b0 y, X7 l0 m
显然plant simulation 不认识 xl.call ("Macro_Reset"); 这句话。你之前有提到过一个activeX 的execute的语句~我在帮助里面木有找到,所以还是想问问~~  [5 S) w6 N3 c' j3 n9 p
0 L% B# a2 @2 G( `1 v
期待你的恢复~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 17:44 , Processed in 0.015042 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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