Excel VBA:如何将从UserForm的控件集合获取的控件转换为其本机ActiveX类型?



我们在用户窗体上的Excel 2016 VBA应用程序中使用第三方ActiveX网格控件10Tec iGrid。我们需要通过动态生成的字符串名称检索此控件,并将其强制转换为其本机类型以进行进一步操作。

对于内部 MSForms 类型(如 CommandButton(,这很容易做到,例如:

Dim cmdbtn As iGrid
Set cmdbtn = Me.Controls("cmdOk")

但是,此方法不适用于 iGrid:

Dim grid As iGrid
Set grid = Me.Controls("iGrid1")

我们总是得到

类型不匹配

错误。

这也无济于事(同样的问题(:

Dim grid As iGrid
Set grid = Me.Controls("iGrid1").Object

有没有办法在 VBA 用户窗体中通过其字符串名称动态获取本机类型的 ActiveX 控件?

试试这个:

Public iGridData As Control
Set iGridData = UserForm1.Controls.Add("iGrid700_10Tec.iGrid", "iGridName", True)

最新更新