gpt4 book ai didi

VBA 以编程方式更改对象名称

转载 作者:行者123 更新时间:2023-12-01 11:34:47 25 4
gpt4 key购买 nike

我创建了一个日期选择器,它允许您选择多个日期并切换它们,这样就没有人可以在那些日子预订任何东西。

为了做到这一点,我有 31 个切换按钮和一个月份选择器。当您选择月份时,31 个按钮中的每一个都必须更新,并从 DLookup 中获取值(打开或或)。

目前,我在月份选择器的更新事件中得到了一个长列表的代码

Private Sub cmbMonth_AfterUpdate()

If IsNull(Me.cmbMonth) Then
GoTo Subexit
Else
Imonth = CInt(Me.cmbMonth)
End If

Call Update_toggle(Me.Toggle1)
Call Update_toggle(Me.Toggle2)
Call Update_toggle(Me.Toggle3)
Call Update_toggle(Me.Toggle4)

等 - 最多切换 31。

有没有办法用循环来做到这一点?

我尝试了一些方法:

Dim toggle as Togglebutton
Dim I as integer
Dim strTogglename as String
set toggle = new togglebutton

I = 1

for 1 = 1 to 32

strtogglename = "Me.Toggle" & I

set toggle.name = strtogglename

Call Update_toggle(Toggle)

next I

但我无法让它工作。尝试使用 byrefbyval 似乎没有帮助。

最佳答案

您可以使用表单的 Controls 集合并在循环时检查每个控件的类型。您正在寻找 acToggleButton

Dim cntrl As Control
For Each cntrl In Me.Controls
If cntrl.ControlType = acToggleButton Then

Update_toggle cntrl

End If
Next

关于VBA 以编程方式更改对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28370212/

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