[英]add checkboxes to emptyrow using vba
我有以下代码:
Private Sub CheckBox1_Click()
Dim MyLeft As Double
Dim MyTop As Double
Dim MyHeight As Double
Dim MyWidth As Double
dim emptyRow as long
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
MyLeft = Cells(emptyRow, 1).Left
MyTop = Cells(emptyRow, 1).Top
MyHeight = Cells(emptyRow, 1).Height
MyWidth = MyHeight = Cells(emptyRow, 1).Width
If CheckBox1.Value = True Then
ActiveSheet.CheckBoxes.Add(MyLeft, MyTop, MyWidth, MyHeight).Select
With Selection
.Caption = ""
End With
End If
End Sub
但是由于某种原因,复选框不会每次都添加到空行中,而是使复选框一次又一次地保存列/行...我该如何解决?
因为您的位置是由WorksheetFunction.CountA(Range("A:A"))
并且CountA
单元格条目进行计数。 因此,添加复选框不会导致计数增加
一种调整方法是通过添加形状来增加行数
emptyRow = WorksheetFunction.CountA(Range("A:A")) + ActiveSheet.CheckBoxes.Count
其他选择是
Checkboxes
的数量。 CountA(Range("A:A")
)) 如果您所有的复选框都在A列中(除了附带代码的复选框),则可以设置空行:
emptyRow = ActiveSheet.CheckBoxes.Count
或它的某种变体(也许是CountA),取决于您是要填充每个单元格,还是只填充不包含值的单元格。
如果您可能在工作表的其他区域中使用复选框,则可能不得不循环浏览每个复选框以查看它们所在的列,即.Left = 0的那些; 并在您的计数中使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.