【发布时间】:2015-10-19 23:21:23
【问题描述】:
我很难理解 VBA 编码方法(我只有 R 经验)。我正在尝试使用 VBA 将用户表单复选框的值链接到工作表中的特定单元格。
Sub x()
Dim Range As Range
If userfrom.checkbox1.Value = True Then
Range.Offset(0, 7).Value = 1
Else
Range.Offset(0, 7).Value = ""
End If
If userform.checkbox2.Value = True Then
Range.Offset(0, 8).Value = 1
Else
Range.Offset(0, 8).Value = ""
End If
If userform.checkbox3.Value = True Then
Range.Offset(0, 9).Value = 1
Else
Range.Offset(0, 9).Value = ""
End If
Unload userform
End Sub
我遇到了将复选框分配给数组的方法,但无法理解线程中的示例。理想情况下,我想做的是声明一个复选框数组以及一个单元格数组 - 并将每个数组中的每个元素链接在一起,即 checkboxArray(1) -> cellArray(1);复选框阵列(2)-> 单元阵列(2);等等
我的一位同事检查了我的代码并说它可以做得更好,即在一行中完成。
这可以实现吗?
【问题讨论】:
-
在我看来是功课
-
您可以通过将ControlSource设置为您想要的单元格来设置复选框属性中复选框的单元格值。
-
更多的是出于好奇。我们正在处理的工作簿非常庞大且资源密集。我想这是一个让代码更高效的问题,因为我们将来可能需要进行进一步的修改,并在这个阶段保留资源。 (我也预计他会试图炫耀他比我知道的更多)。就个人而言,我看不出这种方式会如何降低编码效率。 @ Poof - 不,这不是家庭作业。 @ Scott Holtzman - 这将是处理放置在工作表中而不是用户表单中的复选框的方法。
-
不,它也适用于用户表单,就像我描述的那样。设置控制源会将复选框的值设置为定义的单元格。
-
@Scott Holtzman - 是的,你是对的。真诚的歉意。但我确实需要动态功能,所以我一开始并不认为这个选项是可行的。您的代码运行良好,谢谢!