我对VBA非常陌生,我正在尝试创建一个电子表格,它使用复选框userform来填充电子表格中的表。我已经能够让表填充,但是如果某个框被意外选中而未被选中,则该表将保持填充状态。如何在未选中框后使表恢复为空白,以及如何有效地编码33个复选框以填充电子表格中的33个空格。请在我的描述中看到附在帮助上的图片。
谢谢,
用户型图像

电子表格图像

发布于 2017-11-30 05:40:05
将CheckBox ControlSource属性设置为范围地址将其链接到范围。如果范围不是限定的A1,则复选框将链接到打开用户表单时的工作表,即ActiveSheet。要限定地址,请在单引号中添加区域的父工作表名称,然后加上感叹号,最后添加范围相对地址'Check List'!A1。
最初,复选框将变成灰色,表示链接的单元格为空。当您检查和取消选中它时,链接单元格值将在真和假之间切换。


演示用户格式代码
Private Sub UserForm_Initialize()
Dim Left As Single, Top As Single
Dim cell As Range, row As Range, check As MSForms.CheckBox
Top = 25
Left = 25
With Worksheets("Check List")
For Each row In .Range("A2:K4").Rows
For Each cell In row.Cells
Set check = Me.Controls.Add("Forms.CheckBox.1")
With check
.ControlSource = "'" & cell.Parent.Name & "'!" & cell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
.Left = Left
.Top = Top
Left = Left + 12
End With
Next
Left = 25
Top = Top + check.Height + 2
Next
End With
End Subhttps://stackoverflow.com/questions/47565936
复制相似问题