【发布时间】:2016-07-10 22:57:25
【问题描述】:
我正在使用以下代码在我拥有的每一行旁边创建复选框。可以有 500-2500 行,因此行数需要是动态的。
我正在尝试:
- 将工作表从一个工作簿复制到另一个工作簿
- 复制工作表后,在每行旁边添加复选框
- 我正在使用条件格式来删除 如果 K 为 TRUE,则行,复选框在 J 中。
- 我遇到的问题是,如果一行的格式在 高度,该行中出现两个复选框,它会影响 后续行。
这就是我使用的代码的样子。 请帮忙。
Sub create_new_wb_CHECKLIST()
Sheets("Jobs by Day").Copy
Dim ToRow As Long
Dim LastRow As Long
Dim MyLeft As Double
Dim MyTop As Double
Dim MyHeight As Double
Dim MyWidth As Double
LastRow = Range("I20000").End(xlUp).Row
For ToRow = 2 To LastRow
If Not IsEmpty(Cells(ToRow, "I")) Then
MyLeft = Cells(ToRow, "J").Left
MyTop = Cells(ToRow, "J").Top
MyHeight = Cells(ToRow, "J").Height
MyWidth = MyHeight = Cells(ToRow, "J").Width
ActiveSheet.CheckBoxes.Add(MyLeft, MyTop, MyWidth, MyHeight).Select
With Selection
.Caption = ""
.Value = xlOff
.LinkedCell = "K" & ToRow
.Display3DShading = False
End With
End If
Next
List item
End Sub
【问题讨论】:
-
您可以使用 'Rows(ToRow).RowHeight = X' 设置每行单元格的高度,其中 X 是您想要的值,以使每行的高度一致。否则,我建议您累积变量。例如:MyTop = MyTop + Rows(ToRow).RowHeight。您可能必须使用此累加器值的“幻数”偏移量来获得所需的内容。
-
克里斯/斯科特,感谢您的及时回复!!!我会立即尝试并更新。再次感谢。