在FactoryTalk View SE中,我试图基于另一个值在VBA中设置对象名称。
这有效:
Dim PumpSP As Object
Set PumpSP = ThisDisplay.PumpSetpoint1
PumpSP.Vaule = 10
这不起作用:
Dim PumpSP As Object
Set PumpSP = "ThisDisplay.PumpSetpoint" & "1"
PumpSP.Vaule = 10
如何获取串联的字符串?
谢谢。
答案 0 :(得分:1)
如何获取连接字符串?
您没有,您也不能。 PumpSP
是Object
,而不是String
。您可以Set
进行的唯一操作是对象引用。
例如,这非常类似于您在UserForm
上访问控件的方式:
Set box = Me.TextBox1
之所以可以使用字符串获取该对象,是因为表单具有一个Controls
集合,该集合可让您提供一个字符串,确定哪个控件具有该名称并返回Control
对象为此:
Set box = Me.Controls("TextBox" & i)
因此,从您的情况出发:
Set PumpSP = ThisDisplay.PumpSetpoint1
我不知道ThisDisplay
是什么,但也许它具有类似的集合:
Set PumpSP = ThisDisplay.Controls("PimpSetpoint" & i)
如果没有可让您按名称使用字符串文字检索项目的集合,那么您就走运了。
答案 1 :(得分:0)
这是困难的部分,因为我们已经向罗克韦尔提供了支持,但他们对任何VBA问题均无济于事。好的,但是其中的VBA命令和类与您在线找到的Excel或MS Office VBA的90%不同。无论如何,我能够找到正确的班级成员。
所以这对我有用:
Set PumpSP = ThisDisplay.FindElement("PumpSetpoint" & “1”)
感谢您的所有帮助。