首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VBA中使用变量设置对象名

在VBA中使用变量设置对象名
EN

Stack Overflow用户
提问于 2022-03-28 18:03:56
回答 1查看 96关注 0票数 -1

我正在编写这段代码,当单击按钮时启动一个对象。

代码语言:javascript
复制
Public Sub cmdMA_Click()

    Set this_renewal = CreateRenewal(this_renewal, cMA)
    
    Call BranchLabelVisibility(True)
    Me.Controls("lblBranchToAdd" & 1).Caption = this_renewal.Abb
    Call DateLabelVisibility(True)
    Me.Controls("lblYearToAdd" & 1).Caption = this_renewal.Year
    Me.Controls("lblMonthToAdd" & 1).Caption = this_renewal.Month
    Call TestMonth(1)

End Sub

但是,某些按钮需要对两个对象运行相同的代码,如下所示:

代码语言:javascript
复制
Public Sub cmdAB_Click()

    Set this_renewal = CreateRenewal(this_renewal, cAB)
    
    Dim i As Integer: For i = 1 To 2
        Call BranchLabelVisibility(True)
        Me.Controls("lblBranchToAdd" & i).Caption = this_renewal.Abb
        Call DateLabelVisibility(True)
        Me.Controls("lblYearToAdd" & i).Caption = this_renewal.Year
        Me.Controls("lblMonthToAdd" & i).Caption = this_renewal.Month
        Call TestMonth(i)
    Next i

End Sub

我想出了如何用控件来完成这个任务,但是我不知道如何用我的用户定义的类更新来完成这个任务。我想把它改成这样的东西:

代码语言:javascript
复制
set Renewal("this_renewal" & i) = CreateRenewal(Renewal("this_renewal" & i))

有办法做这种事吗?然后,我可以类似地调用这个对象。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-28 19:37:58

我会使用一组更新对象。

代码语言:javascript
复制
Dim Renewals(1) As Renewal
Set Renewals(0) = CreateRenewal(this_renewal, cMA)
Set Renewals(1) = CreateRenewal(this_renewal, cAB)

' Usage:
Me.Controls("lblBranchToAdd" & i).Caption = Renewals(i - 1).Abb

注意:在您的示例中缺少了很多代码。不知道this_renewal从何而来。我的例子不会“只起作用”,但它向您展示了您将使用的模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71651762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档