Олон сонголттой унадаг жагсаалт

Excel хуудасны сонгодог унждаг жагсаалт нь маш сайн, гэхдээ энэ нь танд танилцуулсан багцаас зөвхөн нэг сонголтыг сонгох боломжийг олгодог. Заримдаа энэ нь таны хүссэн зүйл юм, гэхдээ хэрэглэгч сонгох боломжтой байх шаардлагатай нөхцөл байдал байдаг зарим жагсаалтаас элементүүд.

Ийм олон сонголттой жагсаалтын хэд хэдэн ердийн хэрэгжилтийг харцгаая.

Сонголт 1. Хэвтээ

Хэрэглэгч унадаг жагсаалтаас зүйлсийг нэг нэгээр нь сонгох бөгөөд тэдгээр нь өөрчлөгдөж буй нүдний баруун талд автоматаар хэвтээ байдлаар жагсаагдах болно.

Энэ жишээний C2:C5 нүдн дэх унадаг жагсаалтуудыг стандарт аргаар үүсгэсэн, өөрөөр хэлбэл

  1. C2:C5 нүдийг сонгоно
  2. таб эсвэл цэс Өгөгдөл баг сонгох Мэдээллийн баталгаажуулалт
  3. нээгдэх цонхноос сонголтоо сонгоно уу Жагсаалт муж болгон зааж өгнө Эх сурвалж A1:A8 жагсаалтын эх өгөгдөл бүхий нүднүүд

Дараа нь та хуудасны модульд макро нэмэх хэрэгтэй бөгөөд энэ нь бүх үндсэн ажлыг хийх, өөрөөр хэлбэл сонгосон утгуудыг ногоон нүднүүдийн баруун талд нэмнэ. Үүнийг хийхийн тулд доош унах жагсаалт бүхий хуудасны таб дээр хулганы баруун товчийг дараад командыг сонгоно уу Эх код. Дараах кодыг нээгдэх Visual Basic редакторын цонхонд оруулна уу:

Private Sub Worksheet_Change(ByVal Target As Range) Алдаа дээр Үргэлжлүүлэх Хэрэв огтлолцоогүй бол дараагийнх(Target, Range("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) Алдаа дээр Үргэлжлүүлэн Хэрэв огтлолцоогүй бол дараагийнх(Target, 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 Target As Range) Алдаа дээр Үргэлжлүүлэн Хэрэв огтлолцоогүй бол дараагийнх(Target, Range("C2:C5")) нь юу ч биш ба Target.Cells.Count = 1 Дараа нь Application.EnableEvents = False newVal = Target Application.Undo oldval = Зорилтот Len(oldval) <> 0 Мөн oldval <> newVal Дараа нь Зорилтот = Зорилтот & "," & newVal Else Зорилтот = newVal Төгсгөл Хэрэв Len(newVal) = 0 Дараа нь Target.ClearContents Application.EnableEvents = Үнэн төгсгөл бол Төгсгөлийн дэд  

Хэрэв хүсвэл кодын 9-р мөрөнд тусгаарлах тэмдэгтийг (таслал) өөрийн тэмдэгтээр сольж болно (жишээлбэл, зай эсвэл цэг таслал).

  • Excel хуудасны нүдэнд энгийн унадаг жагсаалтыг хэрхэн үүсгэх вэ
  • Агуулгатай унадаг жагсаалт
  • Дутуу сонголттой унадаг жагсаалт нэмэгдсэн
  • Макро гэж юу вэ, тэдгээрийг хэрхэн ашиглах, Visual Basic програмын макро кодыг хаана оруулах вэ

хариу үлдээх