设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4171|回复: 7

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

  [复制链接]
发表于 2012-3-28 22:25:21 | 显示全部楼层 |阅读模式
小妹想通过 plant simulation 的命令控制相关的excel 文件的行为。但是一直被说语句错误。。。我是这样写的:  G* A% c3 h% H1 P# v
kanal:= DDEConnect("Excel", "Cost");
- r7 _! r7 d. r; iDDEExecute(kanal,"Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value", 1000);
5 ?8 H8 F  @6 {* ]4 C  N' P, SDDEExecute(kanal,"Worksheets("Cost").Range("B121").Value = 35", 1000);8 g3 \5 r+ r# A% a; H% w% m  [
DDEDisconnect(kanal);
# z# i% T9 [% o& K' v! m系统一直报错,说语法有错。。。excecute 语句里的 cost那里有问题。。。。
! a# M4 J% m0 N, Y  U. c( y/ y6 ]0 U- h
请高手们不吝赐教~~小妹先谢过了~~~~
 楼主| 发表于 2012-3-29 16:43:02 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 17:47 编辑
6 n2 b5 X% K1 Z- p$ w# K9 |1 c8 I/ N# a' n: w5 [! S
) q; `% W8 k- `+ r" o
木有人理我么?- R) l$ n3 k5 V3 X$ {0 Q* i

" g, K8 @9 `; P! \/ N" G/ V4 ]我去理解了一下系统的报错。。。我觉得是因为系统把头两个引号看作了一对,导致 "Worksheets(" 成了输出的command,而后面那一串电脑就自然不认识了。。。。所以我就试着用中括号把command整个给括起来~写成了这样:
/ w, A1 ^+ V( M" x3 _8 H4 x' U6 c
/ d2 N6 L% |# M4 \! ~9 O0 HDDEExecute(kanal,"[Worksheets("Cost").Range("B129").Value = Worksheets("Cost").Range("G31").Value]", 1000);1 V  J% e6 M- o# H  G
8 Z3 i3 {9 b2 u8 A# P
但是还是不行~~~有没有高人能给我指点一下~~我应该用一个什么方法把这样的command输入excel??
 楼主| 发表于 2012-3-29 17:48:15 | 显示全部楼层
 楼主| 发表于 2012-3-29 21:57:39 | 显示全部楼层
taoyifei2000 发表于 2012-3-29 21:37
. u4 R) O) j4 q5 p  ^dde确实没用过,不过之前用过其它接口,不知道有没有共性。$ n/ N/ q% s# w: ?1 t9 J, P
+ d- A0 g6 W9 `: E" Y
触发语句是这样写的execute("        'cost'   ...
5 x" E. E* _% d5 K8 e  B0 X
谢谢你~~我试了~~不报错也不执行。。。电脑沉默了。。。
 楼主| 发表于 2012-3-29 22:03:28 | 显示全部楼层
本帖最后由 若叶繁茂 于 2012-3-29 22:10 编辑 : J6 P6 u4 r3 t5 t3 N. d
taoyifei2000 发表于 2012-3-29 21:37 ' e  H9 r* T2 \/ Y0 E& ?
dde确实没用过,不过之前用过其它接口,不知道有没有共性。) n) t# p0 C  v2 F( _

8 r! D* y. L6 J触发语句是这样写的execute("        'cost'   ...
/ w3 h( ]2 M0 y$ D! S5 [  ]  z1 Q0 I
3 `% \! v; N  Z5 |8 F
不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde的热键连上。。。不知道这样行不行~~我去试试。。
2 v- I: G5 W" o' _( I5 c! @6 [9 Q9 `3 A1 T' n) n+ Z8 H
诶不对阿。。。连热键是单纯的传数据啊。。。。哎呀。。。就结了。。。
发表于 2012-3-29 23:13:45 | 显示全部楼层
本帖最后由 五五 于 2012-3-29 23:16 编辑
- }* v* m7 s0 b1 j. ~7 j9 i
若叶繁茂 发表于 2012-3-29 22:03
% q9 }3 U: ~" Q$ t4 I不过我又想了一个办法。。。我可以直接在plant simulation里面写表格。。。然后用dde ...
. c: W- \& H2 X

  {) W- Q$ {* H  u4 o& `: d0 l我也没用过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
& P7 N! _! O7 O) @+ d3 s我也没用过DDE 目前研究中。。。不过如果你不嫌麻烦 可以用ActiveX操作excel表格的。。。我都是这么干的  ...

' |6 M0 i6 ?' e( A9 U! f谢谢~~前两天突然不能回贴。。。今天发现我的邮箱没激活。。。好奇怪。。。
0 I5 @1 w; G6 z: V1 b, T" Q+ W6 J+ p% g2 g# L8 `+ Z
我想向你详细请教一下activeX 的execute语句。。。我的目的是指挥excel运行一个宏。
  \: C5 C2 F/ ]. a6 n0 {按照plant simulation自带的例子拖了一个activeX控件和一个link到我的network里面来。并且控件已改成了 excel.application。link 跟我的excel文件已经连接。于是我写了:0 V, b  H8 B% }. t! H5 |/ W
is
9 T! d; M/ {& F8 b        xl: any;
) B) E) K$ n, h, H+ W+ q  I) Q$ f8 }" v" Qdo
& M) ?6 w! F$ b6 G- E        if ActiveX.active then& w7 _; V" T8 O+ K' v
                xl:= activex.application;
( v, P# l) i% ~3 N; i6 ~                xl.call ("Macro_Reset");7 ^( K% m# @/ W& |+ u8 O
                activex.active:= false;
  k- P* n) B0 k8 t6 w" i        end;! N/ c0 w( i6 Z! n
        ! B3 e8 L' d. w/ ]1 O8 e$ |
end;+ n  n# C7 v- X! l( h2 v/ _$ W% `" G, d: m
. J; C1 i( A' q/ h. V
显然plant simulation 不认识 xl.call ("Macro_Reset"); 这句话。你之前有提到过一个activeX 的execute的语句~我在帮助里面木有找到,所以还是想问问~~
* u' K" L  {: i# T7 o6 a
7 R+ K" I9 Z; P  D; M4 N/ L期待你的恢复~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-6 20:27 , Processed in 0.013788 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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