Көп тандоо менен ылдый түшүүчү тизме

Excel барагындагы классикалык ачылуучу тизме сонун, бирок ал сизге сунушталган топтомдон бир гана параметрди тандоого мүмкүндүк берет. Кээде бул сиз каалаган нерсе, бирок колдонуучу тандап алышы керек болгон жагдайлар бар кээ бир тизмеден элементтер.

Мындай көп тандоо тизмесинин бир нече типтүү ишке ашырууларды карап көрөлү.

Вариант 1. Горизонталдуу

Колдонуучу ачылуучу тизмеден элементтерди биринин артынан бири тандайт жана алар өзгөртүлүп жаткан уячанын оң жагында пайда болуп, автоматтык түрдө туурасынан тизмектелет:

Бул мисалдагы C2:C5 уячаларындагы ылдый түшүүчү тизмелер стандарттуу түрдө түзүлгөн, б.а

  1. уячаларды тандоо C2:C5
  2. өтмөк же меню маалыматтар команда тандоо Маалыматтарды текшерүү
  3. ачылган терезеде бир параметрди тандаңыз тизме жана диапазон катары белгилеңиз булак A1:A8 тизмеси үчүн булак маалыматтары бар уячалар

Андан кийин барак модулуна макросту кошуу керек, ал бардык негизги иштерди аткарат, башкача айтканда, жашыл уячалардын оң жагына тандалган маанилерди кошот. Бул үчүн, ылдый түшүүчү тизмелер бар баракты оң баскыч менен чыкылдатып, буйрукту тандаңыз Булак коду. Ачылган Visual Basic редакторунун терезесине төмөнкү кодду чаптаңыз:

Private Sub Worksheet_Change(ByVal максаттуу диапазон катары) Ката боюнча улантуу Кесилиш болбосо, кийинки улантуу(Максат, Диапазон("C2:C5")) Эч нерсе эмес жана Target.Cells.Count = 1 Анда Application.EnableEvents = False If Len(Target.Offset) (0, 1)) = 0 Анда Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Зарыл болсо, ушул коддун экинчи сабындагы C2:C5 ылдый түшүүчү тизмелердин сезгич диапазонун өзүңүзгө алмаштырыңыз.

Вариант 2. Вертикал

Мурунку версиядагыдай эле, бирок жаңы тандалган баалуулуктар оңго эмес, ылдый жагына кошулат:

Бул дал ушундай жол менен жасалат, бирок иштеткичтин макрокоду бир аз өзгөрөт:

Private Sub Worksheet_Change(ByVal Target As Range) Ката боюнча улантыңыз Кесилиш болбосо, Кийинки (Максат, Диапазон("C2:F2")) Эч нерсе эмес жана Target.Cells.Count = 1 Анда Application.EnableEvents = False If Len(Target.Offset) (1, 0)) = 0 Анда Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Дагы, эгер зарыл болсо, C2:F2 ачылуучу тизмелеринин сезгич диапазонун бул коддун экинчи сабындагы өзүңүздүкү менен алмаштырыңыз.

Вариант 3. Ошол эле клеткада топтоо менен

Бул параметрде топтоо ачылуучу тизме жайгашкан уячада болот. Тандалган элементтер кандайдыр бир белги менен бөлүнөт (мисалы, үтүр):

Жашыл клеткалардагы ылдый түшүүчү тизмелер мурунку ыкмалардагыдай толугу менен стандарттуу түрдө түзүлөт. Бардык иштер барак модулундагы макрос менен аткарылат:

Private Sub Worksheet_Change(ByVal максаттуу диапазон катары) Ката боюнча улантуу Кесилиш болбосо Кийинки улантуу(Максат, Диапазон("C2:C5")) Эч нерсе эмес жана Target.Cells.Count = 1 Анда Application.EnableEvents = False newVal = Максаттуу Application.Undo oldval = Максат Эгерде Len(oldval) <> 0 Жана oldval <> newVal Анда Максат = Максат & "," & newVal Else Максат = newVal End If Len(newVal) = 0 Анда Target.ClearContents Application.EnableEvents = Чыныгы End If If End Sub  

Кааласаңыз, коддун 9-сапындагы бөлүүчү белгини (үтүр) өзүңүздүн белгиге алмаштырсаңыз болот (мисалы, боштук же чекиттүү үтүр).

  • Excel барагынын уячасында жөнөкөй ачылуучу тизмени кантип түзүүгө болот
  • Мазмун менен ылдый түшүүчү тизме
  • Жетишпеген опциялар кошулган ылдый түшүүчү тизме
  • Макрос деген эмне, аларды кантип колдонуу керек, Visual Basic программасында макрокодду кайда киргизүү керек

Таштап Жооп