VBA如何以编程方式设置对象名称?

时间:2018-10-29 18:16:00

标签: vba

在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

如何获取串联的字符串?

谢谢。

2 个答案:

答案 0 :(得分:1)

  

如何获取连接字符串?

您没有,您也不能。 PumpSPObject,而不是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”)感谢您的所有帮助。