gpt4 book ai didi

excel - 循环访问 VBA 用户窗体中的复选框控件

转载 作者:行者123 更新时间:2023-12-02 18:34:26 25 4
gpt4 key购买 nike

我有一个 Excel VBA 中的用户表单,其中每个月都有一个复选框。

选择一个或多个会导致所需的月份显示在工作表上,我将代码复制粘贴了 12 次并且它有效,但我确信有更好的方法使用 For 循环。

这是我的代码的一部分(它出现了 12 次):

    If CheckBox1.Value = True Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("1").Visible = True
Else
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("1").Visible = False
End If

If CheckBox2.Value = True Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("2").Visible = True
Else
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("2").Visible = False
End If

我尝试写:

for i in range 1 to 12

然后编写我的代码,但当我输入“i”而不是数字时似乎出现问题。

最佳答案

假设您没有使用三态复选框,那么.Value只能是TrueFalse,所以我们应该能够摆脱这样的事情:

(假设您的代码在用户窗体内运行,以便可以直接访问 Controls)

Dim mthIdx as Long
Dim nm as String
Dim c As Control

With ActiveSheet.PivotTables("PivotTable1").PivotFields("month")
For mthIdx = 1 To 12
nm = "CheckBox" & mthIdx
Set c = Controls(nm)
.PivotItems(mthIdx).Visible = c.Value
Next
End With

(With 子句并不是绝对必要的,但尽可能少地解析嵌套 COM 引用通常是一个好主意)

关于excel - 循环访问 VBA 用户窗体中的复选框控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987593/

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