Выбор / снятие выделения всех флажков Checkbox в диапазоне EXCEL VBA macro

Я создаю макрос VBA для выбора всех флажков на листе, и он отлично работает, но теперь я хочу настроить свой код, чтобы выбрать и снять выделение только с флажками в определенном диапазоне.

Вот мой код.

Sub Select_all() Dim Cbox As CheckBox Dim Rng As Range Set Rng = ActiveWorkbook.Sheets("Sheet4").Range("B7, B104") For Each Cbox In ActiveSheet.CheckBoxes If Not Intersect(Cbox.TopLeftCell, Rng) Is Nothing Then If Cbox.name <> ActiveSheet.CheckBoxes("Check Box 104").name Then Cbox.Value = ActiveSheet.CheckBoxes("Check Box 104").Value End If End If Next Cbox End Sub 

я добавил

Если Not Intersect (Cbox.TopLeftCell, Rng) ничего не значит

но ничего не меняет, и когда я удаляю эту часть, она выбирает все флажки в листе, и мне нужно только для диапазона («B7: B104»)

Любые предложения, пожалуйста? Большое спасибо.

Это работает для меня. Но я изменил cb # на «1», потому что на моем тестовом листе у меня нет 104. Любой cb в диапазоне B7: B104 будет изменен на значение cb1, которое вы можете изменить на cb104 в своем скрипте.

 Sub Link_Checkboxes_To_Cells() Dim cBox As CheckBox For Each cBox In Sheet1.CheckBoxes If Not Intersect(cBox.TopLeftCell, Range("B7:B104")) Is Nothing Then If cBox.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then cBox.Value = ActiveSheet.CheckBoxes("Check Box 1").Value End If End If Next cBox End Sub 

@JuniorDev

Есть несколько причин, почему приведенный выше код не работает для вас. Я попытаюсь их перечислить.

Вышеупомянутый код работает для флажков «Контроль формы» – флаги Not ActiveX. Вам понадобится другой код для флажков ActiveX. Или у вас может не быть флажка формы с именем «Check Box 1». Но я думаю, что это даст вам ошибку. Или ваши другие флажки могут не находиться в диапазоне («B7: B104»). Вы можете попробовать изменить это на Range («A1: Z10000»), чтобы гарантировать, что ваши флажки находятся в диапазоне.

Если вы не знаете, какие у вас есть флажки, вы можете запустить следующий код, чтобы найти их имена и какой тип управления они являются, либо формой, либо activex. Он распечатает информацию в вашем непосредственном окне редактора VB.

 Sub CheckboxLoop() 'PARTIAL SOURCE: www.TheSpreadsheetGuru.com/the-code-vault Dim cb As Shape 'Loop through Form Checkboxes For Each cb In ActiveSheet.Shapes If cb.Type = msoFormControl Then If cb.FormControlType = xlCheckBox Then Debug.Print "Form Control: " & cb.Name End If End If Next cb 'Loop through ActiveX Checkboxes Dim ChkBx As OLEObject For Each ChkBx In ActiveSheet.OLEObjects If TypeName(ChkBx.Object) = "CheckBox" Then Debug.Print "ActiveX Control: " & ChkBx.Name End If Next ChkBx End Sub 
  • Очистить CheckBoxes в конкретных столбцах
  • activex checkbox loop - выбирает смещение смещенной ячейки, затем копирует строку
  • Excel VBA: флажок Userform - если отличия синтаксиса Statement
  • Запуск макроса только тогда, когда установлен флажок, и при его возврате к установленному «нормальному» состоянию, когда каждый флажок не установлен
  • Как отключить рамку ActiveX?
  • Поиск «Проверено» CheckBox в другом файле Excel с помощью макроса vba
  • Таблицы CheckShop
  • Манипуляция данными Excel
  • вызов субпользователя с помощью флажков excel vba
  • VBA Excel CheckBox, чтобы выбрать все определенные флажки на листе
  • с помощью флажка «ActiveX», переименуйте и измените связанную ячейку, затем скопируйте и повторите
  • Interesting Posts

    Гибкая 3D-графика в Excel – возможные решения

    Как написать списки строк, временных меток и значений в файл excel

    как копировать и вставлять из нескольких столбцов в vba

    Excel как управление на стороне сервера для ASP.NET

    Ускорить удаление дубликатов

    Мой макрос зависает после неопределенного количества итераций

    Формула массива в EPPLUS

    Как суммировать логические значения столбца в excel

    Как изменить расширения файлов в VBA

    Excel – VBA: как проверить, является ли последний символ каждой отдельной ячейки> (знак выше)

    Добавление новой строки в excel с использованием VBA

    Использование переменной с помощью команды Rows () в Excel VBA

    Командная кнопка для открытия пути файла – файла, расположенного в той же кнопке ячейки, выровнена с

    Формула Excel для расчета количества обращений пользователей в системе каждый день

    Динамическое добавление CheckBoxes – Ошибка выполнения 424

    Давайте будем гением компьютера.