gpt4 book ai didi

vba - Rockwell FactoryTalk View SE 上的通配符和 VBA

转载 作者:行者123 更新时间:2023-12-01 23:53:45 24 4
gpt4 key购买 nike

我对 VBA 非常陌生(我在 9 年级用了 3 周,但仅此而已)。我的职业是工业 PLC 程序员,但我的一个应用程序要求我挖掘 9 年级 IT 对 Rockwell FactoryTalk View SE SCADA 系统的痛苦记忆。

我的应用是有一个服务器,存储图形显示,多个客户端,显示这些图形显示。根据所使用的客户端,我想让某些项目对用户可见或不可见。我可以从基本意义上做到这一点,但我想知道是否有更有效的方法。这是目前的代码:

Private Sub Display_AnimationStart()
Dim HostName As String
HostName = Environ$("computername")
Select Case HostName
Case "CCSPE1X2"
Elements.Item("VBAControl_X2Only").Visible = True
Case "CCSPE1X3"
Elements.Item("VBAControl_X3Only").Visible = True
End Select
End Sub

一切正常;我只是将所有应该只对 X2 客户端可见的内容分组到一个名为“VBAControl_X2Only”等的组中。但这会使图形编辑器使用起来很痛苦,因为显示器上的零碎碎片堆积成一个组,与他们真正应该属于的其他群体分开。我决定最好将它们从一个大组中取出,然后将每个项目单独添加到 VBA 代码中。

然后我想,如果有办法在这里使用通配符呢?因此,任何应该只在 CCSPE1X2 上可见的项目,我命名为“StartButton_X2Only”或“StopButton_X2Only”等。然后我运行搜索名称以“X2Only”结尾的任何项目,并使其不可见。

我设想的是这样的:

Dim ElementName As String
If Elements.Item("*").Name Like "*X2Only" Then
ElementName = Elements.Item("*").Name
Elements.Item(ElementName).Visible = True
End If

那行不通(老实说,我真的没想到会这样);当它到达 If Elements.Item("*") 时,它给出错误 91 - 对象变量或未设置 block 变量。

谁能告诉我我是否接近目标?或者如果这是不可能的?我什至不知道是否有办法让它搜索显示屏上的每个项目,因为它不仅仅是一个 Excel 电子表格,我可以告诉它搜索列。

谢谢!

最佳答案

您将需要遍历所有单个项目。尝试这样的事情:

    For Each Item In Elements
If Item.Name Like "*X2Only" Then
Item.Visible = True
End If
Next Item

关于vba - Rockwell FactoryTalk View SE 上的通配符和 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25175194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com