#excel #checkbox #activex #vba
#excel #флажок #activex #vba
Вопрос:
Я новичок в Excel forms, и мне было интересно, может ли кто-нибудь помочь с простым кодом для программы, которую я пытаюсь создать для работы. В принципе, чтобы облегчить мою работу!
Я ищу код, который при установке определенного флажка и нажатии кнопки копирования копирует определенную ячейку. У меня будет несколько флажков, но только одна кнопка копирования. Любая помощь будет принята с благодарностью!
Комментарии:
1. Пожалуйста, добавьте фрагменты кода из того, что вы уже пробовали.
Ответ №1:
предполагается, что ваша кнопка копирования называется CopyButton она скопирует ячейку A1, если установлен флажок с именем CheckBox1, установлен флажок A2, установлен флажок CheckBox2 и т. Д. Вы можете изменить ссылки на ячейки ниже вы на самом деле не указали, что делать с скопированными данными, поэтому он просто копирует их и ничего не делает
Public Sub CopyButton_Click()
if(CheckBox1.Value = true) then
ActiveSheet.Range("A1").copy
end if
if(CheckBox2.Value = true) then
ActiveSheet.Range("A2").copy
end if
'copy the chunk above for more check boxes
End Sub
Комментарии:
1. Большое спасибо за быстрый ответ. На самом деле мне было неловко добавлять то, что я пробовал. Я был ориг. удалось заставить кнопку копирования работать, но не флажки. Это моя первая попытка. Но вышеприведенное работает идеально!!! Большое вам спасибо! Есть еще одна вещь, о которой я забыл упомянуть. Есть ли способ добавить код, чтобы одновременно можно было установить только один флажок? Большое вам спасибо!!!
2. Я не уверен, что вы подразумеваете под «таким образом, одновременно может быть установлен только один флажок», не могли бы вы пояснить, пожалуйста?
3. Извините за это! Позволяет see….So , У меня есть кнопка копирования с 3 флажками (A1, A2 и A3), в зависимости от того, какой флажок установлен, когда я нажимаю кнопку копирования, он копирует определенный номер ячейки. Однако я хочу, чтобы за один раз можно было проверить только один флажок. Итак, если я нажму «A1», а затем выберу «A2», это приведет к снятию флажка «A1». Надеюсь, это поможет! 🙂
4. Ах, да, теперь я понимаю.. Вы могли бы добавить некоторый код, чтобы при изменении значения флажка остальные соответственно менялись, однако гораздо более аккуратным способом сделать это было бы использовать кнопки опций. Они функционируют аналогично флажкам, однако по умолчанию вы можете выбирать только по одному за раз, они должны идеально подходить для этого. Вам нужно будет заменить флажки кнопками опций и изменить код с CheckBox1.Value на OptionButton1.Value и т. Д., Но это должно сделать это, ссылка ниже для получения дополнительной информации о кнопках опций 🙂 excel-easy.com/vba/examples/option-buttons.html