Выделение строк прерывает кнопки activeX, расположенные на этих строках

Я прочесываю интернет и не могу найти других, имеющих эту же проблему.

У меня есть электронная таблица с несколькими групповыми полями ActiveX. Пользователь должен спуститься по электронной таблице и выбрать опции из полей (обычно да нет). Код просто скрывает строки, которые пользователь не должен отвечать на основании своих предыдущих вариантов. Пример кода:

Private Sub OptionButton3_Click() 'High School Diploma YES Option Application.ScreenUpdating = False Sheets("Sheet1").Rows("18:38").Hidden = True Application.ScreenUpdating = True End Sub Private Sub OptionButton4_Click() 'High School Diploma NO Option Application.ScreenUpdating = False Sheets("Sheet1").Rows("18:38").Hidden = False Application.ScreenUpdating = True End Sub 

Моя проблема заключается в том, что всякий раз, когда я показываю одну из этих строк (например, пользователь меняет «Да» на «Нет»), флажки с активными ячейками, которые были ранее скрыты, теперь не подлежат анализу и впоследствии не используются. У кого-нибудь есть идеи, что вызывает это и как его исправить?

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

 (ActiveSheet.Shapes.Range(Array("Group 1", "Group 2", "Group 3")).Visible = False) 

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

Итак, я играю с этим несколько дней, и это то, чему я научился:

Если для кнопки activeX (опция, флажок и т. Д.) Установлено значение «Переместить и размер с ячейками», он будет разбит всякий раз, когда ячейки, на которых он находится, скрыты. Кнопка больше не может быть нажата (или щелкнуть правой кнопкой мыши) и не может быть восстановлена ​​каким-либо образом.

Я пробовал несколько методов для скрытия строк (физически выбирая строки правой кнопкой мыши и скрывая их, используя команды VBA «EntireRow.Hidden = True» и используя команду vba «скрывать строки с помощью VBA RowHeigt = 0».) Во всех экземпляры, когда строка не скрыта, и кнопка снова отображается, она больше не доступна.

Обход, который я нашел, – это изменить настройки кнопки activeX, чтобы «не перемещать и не изменять размер с ячейками». Затем, скрывая строку с кодом VBA, я добавляю дополнительный код, чтобы скрыть кнопку

 ActiveSheet.OLEObjects("OptionButton1").Visible = False 

Это не идеально, но, похоже, по крайней мере дает вид кнопок, скрывающихся с остальной частью содержимого строк.

Я попробовал это:

У меня была две кнопки выбора в строке 1 на листе 1. Ниже приведен код из модуля sheet1.

Я использовал процедуру HideOrShowRow, чтобы скрыть или показать строку.

Обе кнопки-опции имели свой правый щелчок> управление форматом> свойства> Свойство позиционирования объекта, установленное на «Перемещение и размер с ячейками».
Это то, что позволяет спрятать элемент управления со строкой, поэтому я думаю, что вы уже сделали это.

Во всяком случае, это работало нормально для меня. Тем не менее, я подозреваю, что у вас есть две кнопки выбора для каждого вопроса. ДА и НЕТ. Они должны переключаться друг на друга, как показано ниже.

Обратите внимание, что после того, как кнопка опции имеет «тик» в ней, вы не можете щелкнуть ее, чтобы отменить ее. Другая кнопка выбора должна сделать это! (то есть, как мой код ниже)

Не иметь этого в вашем коде может быть чем-то связанным с вашей проблемой.

Кроме того, каждый элемент управления ADo имеет свойство enabled. если для этого параметра установлено значение false, пользователь не сможет изменить свое значение или выбрать элемент управления. Похоже, что они стали фальшивыми? Но как!

 Private Sub Q1_no_Click() MsgBox "hi" Me.Q1_No.Value = Not Me.Q1_yes.Value End Sub Private Sub Q1_yes_Click() Me.Q1_yes.Value = Not Me.Q1_No.Value End Sub Sub HideOrShowRow() Me.Range("A1").EntireRow.Hidden = Not Me.Range("A1").EntireRow.Hidden End Sub 
  • ASP.NET Не удается создать компонент ActiveX
  • передавать данные из слова в excel через vba
  • Как удалить цвет фона с помощью кнопки ActiveX?
  • Отключить предупреждение activeX на excel open
  • Могу ли я скомпилировать VBA на рабочей книге?
  • Как ссылаться на ActiveX ComboBox в Excel 2016 VBA
  • Interesting Posts

    Рассчитайте сумму столбца, если другая ячейка содержит Y в приведенном столбце

    Сплит ExcelSheet после разделителя

    Как добавить нижнюю границу в диапазон Excel в C #?

    Создайте макрос, который копирует определенные данные в столбцах и вставляет данные в разные столбцы в другой книге

    Макро-архитектура для создания суммы до перехода в несколько переменных

    чтение превосходит c c #, что-нибудь новое?

    Формула Excel или столбец поиска кода VBA для списка элементов и устранения двойного счета

    Используя API JExcel, как мне ввести значение ячейки неизвестного типа данных без добавления скрытого апострофа?

    Не удается выполнить макрос в режиме разрыва

    Скопируйте модуль кода листа из PERSONAL.XLSB в новую книгу

    Открытие файлов excel из Интернета открывает пустое окно Excel

    Почему дата отображается в отличие от Excel в браузере

    Visual Studio – используйте книгу Excel, которая находится в ресурсах

    Форматирование заполнения ячейки на основе диапазона значений

    Запуск макроса Excel из Outlook, запущенный на основе темы электронной почты

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