Екцел / ВБА - Како креирати више контролних поља

Екцел / ВБА - Како креирати више контролних поља

У овом чланку ћете научити како да креирате потврдне оквире који се аутоматски повезују са одређеним ћелијама. ВБА не дозвољава креирање више потврдних оквира одједном. Можете ручно повезати поља за потврду са одређеним ћелијама (Цопи / Пасте). За сваку копију вашег потврдног оквира морате одабрати ћелију. Ово је прилично заморан задатак!

Почетак

Тип контроле

  • Постоје два типа поља за потврду у Екцелу: обрасци и АцтивеКс контроле. У овом чланку ћемо користити тип обрасца.

Избегавајте гомилање Екцел листова са превише ставки

  • Екцел не поступа увек са добро претрпаном страницом (екраном), поготово ако намеравате да користите радну свеску на више верзија програма Екцел.

Креирање потврдних оквира

За сваки од ваших поља за потврду биће две важне ћелије:
  • Положај ћелије : онај који ћемо исцртати.
  • Повезана ћелија : она у којој ћемо вратити резултат нашег квадратића.
  • Приметите да су у овом примеру позициона ћелија и повезана ћелија исте. Провера или поништавање овог поља ће вратити ТРУЕ или ФАЛСЕ у повезану ћелију. Нажалост, Екцел не даје могућност постављања више потврдних оквира. Постоје два могућа решења за превазилажење овог ограничења:

Решење 1

Овај једноставан ВБА код када се покрене (ручно) ће генерисати поља за потврду заједно са повезаним ћелијама.

Код

  • Из радне свеске притисните АЛТ + Ф11 да бисте приступили ВБА уређивачу.
  • Кликните на Инсерт> Модуле .
  • Копирајте и налепите доњи код:

 Опција Екплицит Суб Инсерер_Цасес_а_цоцхер_Лиеес () Дим рнгЦел Ас Ранге Дим ЦхкБк Ас ЦхецкБок за сваки рнгЦел у селекцији са рнгЦел.МергеАреа.Целлс Иф .Ресизе (1, 1) .Аддресс = рнгЦел.Аддресс Тхен 'Поур не пас аффицхер ла валеур де ла целлуле лиее, енлевез л'апостропхе ен дебут де лигне суиванте: '.НумберФормат = ";;;" Сет ЦхкБк = АцтивеСхеет.ЦхецкБокес.Адд (.Лефт, .Топ, .Видтх, .Хеигхт) С ЦхкБк 'валеур пар дефаут: .Валуе = клОфф' поурраит Труе оу Фалсе 'целлуле лиее .ЛинкедЦелл = рнгЦел.МергеАреа.Целлс. Адреса 'Текте де ремплацемент' .Цхарацтерс.Тект = "ТИТИ" 'текте' .Тект = "Тото" 'оу: .Цаптион = "Тото"' бордуре: Са .Бордер 'Стиле де лигне' .ЛинеСтиле = клЛинеСтилеНоне 'оу клЦонтинуоус клДасхДот клДасхДотДот или клДот 'цоулеур' .ЦолорИндек = 3 '3 = роуге' епаиссеур ду траит '.Веигхт = 4 Енд Са' аццессиблес аусси лес проприетес .Лоцкед, .Наме, .Енаблед етц ... Енд Витх Енд Иф Енд Витх Нект рнгЦел Енд Суб 

Да бисте користили овај код:

Из сваког листа радне свеске:
  • Изаберите опсег ћелија у које желите да убаците поља за потврду,
  • Притисните Алт + Ф8 .
  • Изаберите модул и кликните на Рун .

Решење 2

У овом примеру користићемо догађај Ворксхеет_СелецтионЦханге као окидач.

Овај догађај ће аутоматски покренути код сваки пут када одаберете ћелију (унутар одређеног распона).

Предложени код ће проћи кроз све ћелије из изабраног опсега и ако је ћелија у фонту "Вингдингс", убациће поље за потврду.

Код

Да бисте уметнули овај код:
  • Отворите лист по вашем избору.
  • Кликните десним тастером миша на картицу листа> Прикажи код .
  • Копирајте и налепите доњи код:

 Опција Екплицит Привате Суб Ворксхеет_СелецтионЦханге (БиВал Таргет Ас Ранге) 'Рестрицтион де ла плаге. Ако је Интерсецт (Унион ([А2: А10], [Д2: Д10]), Таргет) Ништа Затим Излазите из Суб 'Плаге А2: А10; Д2: Д10 Иф Таргет. Цоунт = 1 Или Таргет.МергеЦеллс Онда ако Таргет.Фонт.Наме = "Вингдингс" Онда са Таргет 'целлуле "лиее" .Валуе = Абс (.Ранге ("А1"). Вредност - 1) .НумберФормат = "" " ""; Генерал; "" о ""; @ "Апплицатион.ЕнаблеЕвентс = Фалсе .Ранге (" А1 "). Оффсет (, 1) .Одаберите Апплицатион.ЕнаблеЕвентс = Труе Енд Витх Енд 

Да бисте користили овај код:

  • Изаберите опсег ћелија.
  • Примените фонт Вингдингс.
  • Кликните било где на вашем радном листу, а затим на сваку од претходно изабраних ћелија.

Коришћење кода са заштићеном радном свеском

 АцтивеСхеет.Протецт "админ" 'админ = гласај за пассе' ПУТ ИОУР ЦОДЕ ХЕРЕ АцтивеСхеет.Унпротецт "админ" 

Ако је ваш лист заштићен, морате уклонити заштиту кода. Ово се може постићи коришћењем доњег кода:

Претходни Чланак Sledeći Чланак

Топ Савети