Выбор определенных флажков с использованием главного флажка -- excel поле с участием vba пол Связанный проблема

Selecting specific check boxes using a master check box


0
vote

проблема

русский

Я пытаюсь создать макрос, чтобы выбрать все флажки определенного столбца. Например, у меня есть 10 критериев, установите флажки на столбце с главным установителем для каждого столбца, как «выберите все». У меня есть код вниз, чтобы выбрать каждый флажок, но не может понять, как немного настроить его только для выбора или отмените выделить ячейки A2: A10, например, не в коробках в столбце B, C и т. Д.

Я использую этот простой скрипт;

 <код> Sub SelectAll_Click() Dim CB As Checkbox For Each CB In ActiveSheet.CheckBoxes If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then CB.Value = ActiveSheet.CheckBoxes("Check Box 1").Value End If Next CB End Sub   

Я пробовал безуспешно изменять и LT;, & gt; = имя флажка для идентификации сказать что-то меньшее, чем первый флажок столбца B А также добавление в диапазоне = диапазон ()

Я совершенно новый, и я уверен со временем и изучаю, я осмотрю назад и смеюсь на мой дорожный блок здесь, но если кто-то может одолжить мне свою экспертизу, это было бы очень ценится.

Спасибо

Английский оригинал

I am trying to create a macro to select all check boxes of a certain column. For example I have 10 criteria check boxes per column with master check box for each column as "select all". I have the code down to select EVERY check box but cannot figure out how to tweak it slightly to only select or deselect cells A2:A10 for example, and not the boxes in column B, C, etc.

I'm using this simple script;

Sub SelectAll_Click() Dim CB As Checkbox For Each CB In ActiveSheet.CheckBoxes If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then CB.Value = ActiveSheet.CheckBoxes("Check Box 1").Value End If Next CB End Sub 

I tried unsuccessfully altering the <,>, = of the check box name to identify say anything less than the first checkbox of column B As well as adding in an =range()

I am brand new to all of this and I'm sure with time and learning I'll look back and laugh at my road block here, but if anyone could lend me their expertise for the time being, it'd be greatly appreciated.

Thanks

</div
     
       
       

Список ответов

0
 
vote
vote
Лучший ответ
 

Чтобы иметь одну макросущую работу для всех мастер-флажки используйте абонент и сравнить TopleftCell.Column:

 <код> Sub CheckComboboxesInColumn() Dim CallerString As String, CallerBox As CheckBox Dim chk As CheckBox      CallerString = Application.Caller     Set CallerBox = ActiveSheet.CheckBoxes(CallerString)      For Each chk In ActiveSheet.CheckBoxes         If chk.TopLeftCell.Column = CallerBox.TopLeftCell.Column Then chk.Value = CallerBox.Value     Next chk End Sub   
 

To have one macro work for all Master-Checkboxes use caller and compare topleftcell.column:

Sub CheckComboboxesInColumn() Dim CallerString As String, CallerBox As CheckBox Dim chk As CheckBox      CallerString = Application.Caller     Set CallerBox = ActiveSheet.CheckBoxes(CallerString)      For Each chk In ActiveSheet.CheckBoxes         If chk.TopLeftCell.Column = CallerBox.TopLeftCell.Column Then chk.Value = CallerBox.Value     Next chk End Sub 
</div
 
 
 
 
0
 
vote

Мне кажется, что вы хотите проверить / снизить ваши коробки на основе столбца, в которой они расположены. Следовательно, я бы предложил следующий код:

 <код> Public Sub CheckComboBoxBasedOnColumn()  Dim chk As CheckBox  For Each chk In Sheet2.CheckBoxes     Select Case Split(chk.TopLeftCell.Address, "$")(1)     Case "A"         'If the checkbox is in column A then check it.         chk.Value = True     Case "B"         'If the checkbox is in column B then un-check it.         chk.Value = False     Case "C"         '... what ever you want for column C     Case Else         '... or any other column     End Select Next chk  End Sub   

Дайте мне знать, если это решило вашу проблему.

 

It seems to me that you want to check / uncheck your boxes based on the column in which they are located. Hence, I'd propose the following code:

Public Sub CheckComboBoxBasedOnColumn()  Dim chk As CheckBox  For Each chk In Sheet2.CheckBoxes     Select Case Split(chk.TopLeftCell.Address, "$")(1)     Case "A"         'If the checkbox is in column A then check it.         chk.Value = True     Case "B"         'If the checkbox is in column B then un-check it.         chk.Value = False     Case "C"         '... what ever you want for column C     Case Else         '... or any other column     End Select Next chk  End Sub 

Let me know if this solved your problem.

</div
 
 
 
 
0
 
vote

Если вы ссылаетесь на флажки в виде объектов формы внутри листа, вы можете получить доступ к свойству .topleftcell, который скажет вам, какой столбец находится флажок. Следующий код будет работать для всех флажков управления форм в столбце A. Проще говоря Измените столбец # (1 в этом коде) в желаемое столбец, и измените имя вашего главного флажка в каждом случае.

 <код> Sub SelectAllColumnA_Click() Dim shp As Shape For Each shp In ActiveSheet.Shapes     If shp.Type = msoFormControl Then 'Form control         If shp.FormControlType = xlCheckBox Then             If shp.Name = "Check Box 1" Then                 'Do not alter value of master check box "Check Box 1"             ElseIf shp.TopLeftCell.Column = 1 Then                 shp.ControlFormat.Value = ActiveSheet.CheckBoxes("Check Box 1").Value             End If         End If     End If Next shp End Sub   

Редактировать: Я упростил код, поскольку вы говорите, что используете элементы управления форм.

edit2: Вот простое дополнение, которое изменит состояние главного флажка.

 <код> Sub SelectSubCheckBoxA() ActiveSheet.CheckBoxes("Check Box 1").Value = 2 End Sub   

Просто назначьте этот макрос каждому флажок в столбце A. Для других столбцов создайте новую версию этого макроса и измените имя главного флажка. Таким образом, когда вы выбираете любой флажок индивидуально, он визуально «отключен» главный флажок.

 

If you reference the checkboxes as Shape objects within the sheet then you can access the property .TopLeftCell which will tell you what column the checkbox is located in. The following code will work for all form control check boxes in Column A. Simply change the column # (1 in this code) to the column you wish, and change the name of your master checkbox in each case.

Sub SelectAllColumnA_Click() Dim shp As Shape For Each shp In ActiveSheet.Shapes     If shp.Type = msoFormControl Then 'Form control         If shp.FormControlType = xlCheckBox Then             If shp.Name = "Check Box 1" Then                 'Do not alter value of master check box "Check Box 1"             ElseIf shp.TopLeftCell.Column = 1 Then                 shp.ControlFormat.Value = ActiveSheet.CheckBoxes("Check Box 1").Value             End If         End If     End If Next shp End Sub 

Edit: I simplified the code since you said you are using form controls.

Edit2: Here is a simple addition which will change the state of the master checkbox.

Sub SelectSubCheckBoxA() ActiveSheet.CheckBoxes("Check Box 1").Value = 2 End Sub 

Simply assign this macro to every checkbox in Column A. For other columns, create a new version of this macro and change the name of the master checkbox. This way, when you select any check box individually it will visually "disable" the master checkbox.

</div
 
 
         
         

Связанный проблема

0  Power Query Connect DB2  ( Power query connect db2 ) 
Я пытаюсь использовать Power Query для подключения DB2, но для подключения DB2 нет варианта, Может кто-нибудь помочь мне решить это? ...

0  VBA: Код паузы для различных длин времени с Doevents  ( Vba code pauses for varying lengths of time with doevents ) 
У меня есть процедура, которая генерирует отчеты на основе ввода пользователей, предусмотренной пользовательской формой. Я реализовал обработку ошибок, как сл...

-1  Auto запустить два кода VBA, когда открывается книжная книга Excel  ( Auto run two vba codes when an excel workbook opens ) 
У меня есть два кода VBA, я хотел бы запустить, когда открывается рабочая книга Excel. <код> Sub test2() Dim c As Range For Each c In Range("A1:A1")...

0  Сохранение рабочей книги Excel заставляет пользовательскую форму неверно отвечать на вкладку и события клавиши (но сохранение в среде кода не!)  ( Saving excel workbook causes userform to incorrectly respond to tab and keydown ) 
Я использую Excel 2013 в Windows 10. У меня есть пользователь номер, который имеет ряд текстовых ящиков и соответствующие обработчики для подключения клавиши,...

0  VBA Help - скрипт для запуска 3 макросов через функцию вызова не будет работать все макросы  ( Vba help script to run 3 macros via call function will not run all macros ) 
Извинения, если этот вопрос элементарной, я не отлично в VBA. У меня есть 3 отдельных кода, которые я хочу запустить один за другим, нажав кнопку. Поэтому у м...

0  VBA Pivot фильтр - диапазон дат  ( Vba pivot filter date range ) 
Хотите фильтровать таблицу с поворотом, чтобы быть в пределах диапазона даты. Фильтр даты находится в верхней части поворота, с основной таблицей, имеющей 3 с...

-1  Как подсчитать строки и вернуть данные из CE  ( How to count rows and return the data from a ce ) 
У меня есть электронная таблица с датами, перечисленными в столбце A, и рабочее время или на выходных в столбце B. в столбце C, я хотел бы ключевой номер тран...

1  Что вызывает эту ошибку SOAPMAPPER в вызове SOAP VBA?  ( Whats causing this soapmapper error in vba soap service call ) 
Я пытаюсь употреблять веб-сервис на базе Java от кода VBA в рабочей книге Excel 2003. Есть два метода доступны. Один извлекает данные, другие данные загрузки....

14  Добавление элементов управления в рамку в Excel Userform с VBA  ( Adding controls to a frame in an excel userform with vba ) 
Мне нужно динамически создавать этикетки и кнопки, а затем добавлять их в кадр в рамках пользователя. Как мне это сделать? Похоже, это должно быть проще, чем...

2  Функции локальной (специфики для рабочей книги) без использования VBA или VSTO  ( Local workbook specific functions without using vba or vsto ) 
Я ищу способ создания рабочей книги - локальные функции в C ++ (неуправляются). VBA не подходит для моего случая использования. К сожалению, это единственный ...

0  VBA для извлечения даты из файла  ( Vba to extract date from file path ) 
У меня есть серия файлов для отслеживания в электронной таблице Excel. Они хранятся в папках по дате. Иногда файл изменен, затем повторно повторно, поэтому им...

1  Чтение от файла Excel с пустыми ячейками до 2D-массива  ( Reading from excel file with blank cells to 2d array ) 
У меня есть следующий код, который читает логины и пароли из файла XLS, начиная со второго ряда (оно пропускает имена столбцов) и записывают его в 2D массив. ...

0  Несоответствие типов при использовании оператора CASE для только видимых ячеек  ( Receiving type mismatch when using case statement for only visible cells ) 
Я получаю ошибку на смелой линии относительно несоответствия типа. Заявление о случаях относится к значению ячейки, которое только видно, но я не уверен, если...

0  Есть ли возможность выбора определенного диапазона данных на Excel с использованием кода VBA на основе критериев столбцов?  ( Is there a possibility of selecting a specific range of data on excel using vba ) 
В моем наборе данных у меня есть столбец с большим количеством адресов электронной почты, некоторые повторяющиеся, некоторые нет. Я вставил новый столбец вп...

2  Как я могу найти слово в ячейке в Excel VBA и окрасить его красным (только слово, а не всю ячейку), используя код VBA?  ( How can i find a word in a cell in excel vba and color it red only the word not ) 
Я пишу код в Excel, часть которой необходимо найти слово в ячейке (не чувствительно к регистру) и окрасить его красным (только слово не все ячейка). Например...

Связанный проблема

0  Power Query Connect DB2 
0  VBA: Код паузы для различных длин времени с Doevents 
-1  Auto запустить два кода VBA, когда открывается книжная книга Excel 
0  Сохранение рабочей книги Excel заставляет пользовательскую форму неверно отвечать на вкладку и события клавиши (но сохранение в среде кода не!) 
0  VBA Help - скрипт для запуска 3 макросов через функцию вызова не будет работать все макросы 
0  VBA Pivot фильтр - диапазон дат 
-1  Как подсчитать строки и вернуть данные из CE 
1  Что вызывает эту ошибку SOAPMAPPER в вызове SOAP VBA? 
14  Добавление элементов управления в рамку в Excel Userform с VBA 
2  Функции локальной (специфики для рабочей книги) без использования VBA или VSTO 
0  VBA для извлечения даты из файла 
1  Чтение от файла Excel с пустыми ячейками до 2D-массива 
0  Несоответствие типов при использовании оператора CASE для только видимых ячеек 
0  Есть ли возможность выбора определенного диапазона данных на Excel с использованием кода VBA на основе критериев столбцов? 
2  Как я могу найти слово в ячейке в Excel VBA и окрасить его красным (только слово, а не всю ячейку), используя код VBA?