В Excel нет встроенного способа генерировать загрузку флажков форм, связанных с базовыми ячейками.Если вы скопируете один флажок, он будет иметь все те же свойства (включая связанную ячейку), что означает, что вам придется каждый раз редактировать его вручную.Чтобы сразу добавить группу, вам нужно создать функцию VBA, которая сделает это за вас.
К счастью люди умнее меня уже сделали это.Вот один такой пример кода:
Option Explicit
Sub insertCheckboxes()
Dim myBox As CheckBox
Dim myCell As Range
Dim cellRange As String
Dim cboxLabel As String
Dim linkedColumn As String
cellRange = InputBox(Prompt:="Cell Range", _
Title:="Cell Range")
linkedColumn = InputBox(Prompt:="Linked Column", _
Title:="Linked Column")
cboxLabel = InputBox(Prompt:="Checkbox Label", _
Title:="Checkbox Label")
With ActiveSheet
For Each myCell In .Range(cellRange).Cells
With myCell
Set myBox = .Parent.CheckBoxes.Add(Top:=.Top, _
Width:=.Width, Left:=.Left, Height:=.Height)
With myBox
.LinkedCell = linkedColumn & myCell.Row
.Caption = cboxLabel
.Name = "checkbox_" & myCell.Address(0, 0)
End With
.NumberFormat = ";;;"
End With
Next myCell
End With
End Sub
Вы должны скопировать его в модуль VBA.Нажмите Alt + F11, чтобы открыть редактор VBA, выберите модуль текущей рабочей книги и вставьте этот код. Если в вашей текущей книге нет модуля, щелкните правой кнопкой мыши имя рабочей книги и используйте Insert
-> New Module
, чтобы добавитьодин.
Вернитесь в свою книгу и нажмите Alt-F8, чтобы запустить макрос.Если вы запустите макрос insertCheckboxes
, вы получите следующий диалог:
![Enter Range Here](https://i.stack.imgur.com/NyuZr.png)
Введите диапазон, в котором вы хотите установить флажки (например, A1: A10)
![Enter Linked Column Here](https://i.stack.imgur.com/tlAMW.png)
Введите столбец, с которым вы хотите связать флажки (если вы выберете B, это означает, что в столбце B будет показан результат TRUE
/ FALSE
флажка).
![Enter the Checkbox Label Here](https://i.stack.imgur.com/w93Pn.png)
Введите нужную метку на флажках.Если вам нужен только флажок, оставьте его пустым.
Есть пара небольших проблем с VBA (например, он устанавливает ячейки, в которые устанавливаются флажки, как ;;;
, заставляя их ничего не отображать, вероятно, дляслучаи, когда вы связываете флажки с ячейками, в которых они расположены), но небольшая креативная инженерия должна помочь вам в этом.
После того, как вы использовали макрос, вы можете удалить модуль - макрос простосоздает флажки, их не нужно поддерживать.
Примечание. Приведенный выше код был протестирован и работал в Excel 2010 для меня.Ваша среда может отличаться