利用Aspen Plus ActiveX调用物流的粘度失败
我想用Excel调用Aspen中物流的粘度,但是一直如下的信息,求助大佬帮助:我增加粘度的方法和调用语句如下:
1. 在Property Sets里设置了粘度的物性集,然后添加到物流结果中;
2. VBA中语句:即物流101的粘度
Cells(2, "G").Value = LinkAspen.Application.Tree.FindNode("\Data\Streams\101\Stream Results\Table\MUMX cP 101").Value
图片把文字挡住了。另外,最好把文件传上来 首先保证在Variable Explorer界面可以看到结果,其次再去调用。用VB一般不会有问题。 banknation 发表于 2022-10-16 06:01
图片把文字挡住了。另外,最好把文件传上来
后面的文字就是我粘贴到下面的VBA语句 bcbooo 发表于 2022-10-16 09:01
首先保证在Variable Explorer界面可以看到结果,其次再去调用。用VB一般不会有问题。
嗯,是的,增加了物性集后在Variable Explorer是可以看到粘度的结果的,但是调用就会出错,其他数据就可以,用物性集增加的就不行,不知道为什么,不知道您能否帮忙看一下,VB没有试过
我在B站看了您发的视频,已关注收获很多
学习学习,谢谢分享 一直在纠结 发表于 2022-10-16 13:17
嗯,是的,增加了物性集后在Variable Explorer是可以看到粘度的结果的,但是调用就会出错,其他数据就可 ...
我的Aspen Plus V11,无论是采用Property Sets的方式在流股显示粘度,还是直接在流股结果add properties添加粘度的显示,在Variable Explorer都看不到这个属性。你换个版本试试吧,我也不知道什么原因 不懂 bcbooo 发表于 2022-10-16 14:29
我的Aspen Plus V11,无论是采用Property Sets的方式在流股显示粘度,还是直接在流股结果add properties ...
我用V10和V12都试过了,都是一样的问题 本帖最后由 sdtower 于 2022-10-18 01:50 编辑
试了一下FindNode无法直接访问table的元素,虽然Variable Explorer里可以看到它们的Call值。table下面的元素Call值有重名的,如果能直接访问恐怕也会有问题。尝试用.Elements("").value方式访问,给出的错误信息是越界,应该是在table下没找到对应的字符串,也就是Call值在table后面的字符系统是不认的,这应该是一个bug,是否是中文造成的字符识别问题?有英文版操作系统的可以试试。另外是否有直接按元素序号访问的方式?时间问题就不找了。
曲线救国的办法是把table set 成IHNode,然后遍历这个IHNode的元素值获得想要的数据,不过这需要自己编写一个函数实现。
sdtower 发表于 2022-10-18 01:08
试了一下FindNode无法直接访问table的元素,虽然Variable Explorer里可以看到它们的Call值。table下面的元 ...
是的,我也发现了这个问题,气相和液相的粘度的call那里是一样的,区分不出来气相还是液相,我也用了另外一种访问的方式,同样是不行。从报错来看就是没有找到粘度的对象。
您下面说的遍历IHNode找数据能否详细说说,我没有看太明白,谢谢您 Set IhTable = ihAPsim.Tree.FindNode("\Data\Streams\101\Stream Results\Table")
For Each ihitem In Ihtable.Elements
if ihitem. Name=" MUMX cP 101" then
Cells(2, "G").Value =Ihitem.value
end if
Next ihitem
找到table为止,再往下它就找不到了,下面就遍历table下面的项,通过项目名比对找到粘度的那一项。直接访问table下面的数据是存在问题的,具体来说就是类里面的项目名和在Variable Explorer里看到的不一样,用遍历的方法绕过了用项目名来查找。
如果用item(名称)的方式访问,给出的错误信息是出界,也就是在里面没找到这个名称,也就是Call里面的项目名和我们看到的项目名是一样的,但和类里面的名称不一样。也许可以把这个名称改成类里面的名称还是可以使用的,但我们是无法知道怎么改的。也许A+压根就不想让人直接访问到Table下面的数据,它认为用户既然访问这个表了就把整个表拿走不谢,至于Call值因为是通用的所以Table下面的项目也会出现,Call值有重复恰恰说明这点。
sdtower 发表于 2022-10-18 13:34
如果用item(名称)的方式访问,给出的错误信息是出界,也就是在里面没找到这个名称,也就是Call里面的项目名 ...
嗯,有可能就是无法调用粘度等物性,多谢了 一直在纠结 发表于 2022-10-18 14:47
嗯,有可能就是无法调用粘度等物性,多谢了
不是粘度的锅,在table下的任何数据的Call都无法正确识别。
页:
[1]