Excel 防止填充复制控件?
我有一个excel电子表格,其中有许多复选框,这些复选框与工作表中的单元格相连 然后根据复选框的条件和一些其他数据设置格式 现在我需要更改格式或公式,所以我更改一些单元格,然后填充以更改其余单元格 问题是fill会沿着所有范围复制复选框,这样第一个复选框就会出现在所有单元格中。(复制和粘贴在没有复选框的情况下也可以工作,但由于剪贴板经常被此电子表格或其他电子表格重置,因此复制和粘贴变得很困难。) 是否有任何方法可以停止这种行为,并在填充时将所有复选框保留在它们所在的位置。到目前为止,所有填充选项都不起作用 一个对我有用的替代方案 所有复选框都是使用vba宏创建的,该宏将复选框放在单元格中,并链接到工作表中的正确单元格。 如果可以先删除复选框,我可以轻松地重新创建它们 我知道有Excel 防止填充复制控件?,excel,vba,Excel,Vba,我有一个excel电子表格,其中有许多复选框,这些复选框与工作表中的单元格相连 然后根据复选框的条件和一些其他数据设置格式 现在我需要更改格式或公式,所以我更改一些单元格,然后填充以更改其余单元格 问题是fill会沿着所有范围复制复选框,这样第一个复选框就会出现在所有单元格中。(复制和粘贴在没有复选框的情况下也可以工作,但由于剪贴板经常被此电子表格或其他电子表格重置,因此复制和粘贴变得很困难。) 是否有任何方法可以停止这种行为,并在填充时将所有复选框保留在它们所在的位置。到目前为止,所有填充选项
复选框。请删除,但我无法在工作表上使用它,因为工作表中还有其他复选框我无法删除。
是否有办法仅删除特定范围内的所有复选框
这将允许我根据需要格式化,删除所有复选框并重新创建它们。这是为您的替代解决方案准备的。如果您正在动态创建这些,请给它们一个名称,以区别于其他。然后,您可以循环检查每个,检查名称并删除
Sub RemoveCheckBoxes()
Dim checkBoxKeyWord As String
'Lets say this is what each checkbax name starts with
checkBoxKeyWord = "cbRemovable"
Dim shp As Shape
'loop through the sheet and check the shapes (Form controls are shapes)
For Each shp In Sheets(1).Shapes
'see if the name matches
If Left(shp.Name, Len(checkBoxKeyWord)) = checkBoxKeyWord Then
'delete the checkbox
shp.Delete
End If
Next
End Sub
这是一个检查范围的版本
Sub RemoveCheckBoxes()
Dim checkBoxKeyWord As String
Dim r As Range
Set r = Sheets(1).Columns("B")
'Lets say this is what each checkbax name starts with
checkBoxKeyWord = "cbRemovable"
Dim shp As Shape
'loop through the sheet and check the shapes (Form controls are shapes)
For Each shp In Sheets(1).Shapes
'see if the name matches
If Left(shp.Name, Len(checkBoxKeyWord)) = checkBoxKeyWord Then
Dim cbRange As Range
Set cbRange = Sheets(1).Range(shp.ControlFormat.LinkedCell)
If Not Application.Intersect(cbRange, r) Is Nothing Then
'delete the checkbox as its linked cell is in the range
shp.Delete
End If
End If
Next
End Sub
复选框是表单控件还是activex控件?我相信它们是表单控件。”作为VBA中的复选框。谢谢,这太棒了。但是,它只适用于将来的复选框。我仍然必须删除我已经创建的所有额外复选框。我正在尝试查找LinkedCell属性,看看它是否在范围内。否则,简单地单步执行代码仍然比手动删除快得多。