Өгөгдлийн сангаас татаж авсан өгөгдөл нь комбоксийн хүрээнээс хэтэрсэн тохиолдолд шинэ зүйлийг ердөө л харуулахгүй. Үүнийг эсэргүүцэхийн тулд жагсаалт эсвэл хосолсон хайрцгуудын далд хүрээ өргөжиж эсвэл өгөгдөлд нийцүүлэн гэрээ хийх шаардлагатай. Энэ нийтлэлд үүнийг хэрхэн автоматаар хийх талаар авч үзнэ.
Уншигч нь Хөгжүүлэгчийн туузыг харуулсан бөгөөд VBA редакторыг сайн мэддэг гэж таамаглаж байна. Хэрэв үгүй бол Google-ийн “Excel Developer Tab” эсвэл “Excel Code Window” -ийг ашиглана уу.
Хосолсон хайрцгийг харуулах мэргэжлийн арга бол хүрээгээ тэлэх эсвэл шаардлагатай бол гэрээ хийх явдал юм. Жишээлбэл:
Динамик хүрээний түлхүүр нь холбогдох багана дахь хүн амын мөрийн тоог хянах явдал юм. Энэ функц нь популяцийн элементүүдийг нүдний дарааллаар хамгийн сүүлд нь цохиж дуустал тоолно; дээрх зураг дээрх эхний диаграммын хувьд энэ нь 11-р эгнээ байх болно.
Мужийг хадгалахын тулд хүн амын эгнээний тоог хянахын тулд тодорхойлсон нэрсийг автоматаар шаарддаг. Жишээлбэл, бид хүрээний хил хязгаарыг тодорхойлохын тулд eCol (төгсгөлийн багана) ба eRow (төгсгөлийн мөр) ашигладаг. Бид хичнээн олон эгнээ байрлуулах тусам eRow-ийн утга нэмэгдэх болно.
Дээрх нэрс нь жагсаалтыг eCol дахь хүн амтай мөрийн тоогоор (eRol = 1) нэг баганы өргөн (eCol = 11) болгож тохируулсан болно.
Эцэст нь Гарчиг нь “A2: A” & eRow мужид гарч ирнэ. Индекс функц нь "Гарчиг" нэртэй муж дахь хамгийн сүүлийн нүдийг тогтооход ашиглагддаг болохыг та анхаарч үзээрэй. Энэ үе шатанд үр дүнтэй "A2: A" & eRow нь "A2: A11" болж орчуулагдана.
Ажлын дэвтэр нээгдэх үед бид ажлын тэмдэг харагдахаас өмнө ажилладаг Auto_open дэд процедурыг ашиглан динамик мужийг автоматаар тохируулж болно.
Дүрэм
Ажлын номоо нээгээд комбокс болон зарим өгөгдлөөр дүүргэ. Энэ дасгалд ашигласан ажлын номны загварыг олж болно энд.
VBA кодын цонхыг нээгээд модулийг оруулна уу. Доорх кодыг модульд хуулж ав.
Auto_Open үйл явдал нь "Гарчиг" динамик хязгаарт зориулсан сүүлийн мөр ба баганын утгыг тохируулж, дараа дараагийн өөрчлөлтүүдийг тэмдэглэнэ.
Sub auto_open()
Dim eRow As Integer, eCol As Integer, i As Long
On Error Resume Next
'Clear the present define names, to avoid any duplications
activeworkbook.Names("eCol").Delete
activeworkbook.Names("eRow").Delete
activeworkbook.Names("Titles").Delete
Range("A1").Select
'Titles will appear in the first column, A in this case
eCol = 1
'Find the last populated row
eRow = Sheets("Main").Cells(Rows.Count, eCol).End(xlUp).Row
'Define the names
activeworkbook.Names.Add Name:="eCol", RefersTo:="=COUNTA($1:$1)"
activeworkbook.Names.Add Name:="eRow", RefersToR1C1:="=COUNTA(C" & ColNo & ")"
activeworkbook.Names.Add Name:="Titles", RefersTo:="=A2:INDEX($2:$200," & "eRow," & "eCol)"
End Sub
Sub DropDown1_Change()
MsgBox "Directed by " & Cells(2, 5)
End Sub
Тэмдэглэл: Үзэхэд хялбар болгохын тулд бүх зүйлийг нэг хуудсан дээр байрлуулсан. Ихэвчлэн A & B, D & E багануудын утгууд нь өөр, магадгүй нуугдсан хуудсан дээр байх болно. Мөн энэ дасгалын хүрээнд мужийн тодорхойлолтод хоёр дахь багана болох B-г ашиглаагүй болохыг анхаарна уу; B баганын утгуудыг ердийн аргаар комбо хайрцагны нүдний холбоос шинж чанараар олж авдаг (D2 нь мужийн гурав дахь элементийн сонголтыг тусгадаг бөгөөд энэ нь A2-оос эхэлдэг бөгөөд захирагчийг олохын тулд "E3" дахь Индекс функцтэй хослуулсан ( =INDEX(B:B,D2+1,1)).
Ажлын номоо хадгалаад дахин нээнэ үү. Хосолсон хайрцгийг эхний ээлжинд Auto_open нээнэ. А, В баганад зүйл нэмж, самбар хайрцагт гарсан өөрчлөлтийг ажиглана уу.
Эвдэрсэн Excel файлуудыг аврах
Үе үе Excel гэнэтийн уналтанд орсны дараа Excel файлууд эвдэрч болзошгүй. Хэрэв танд нөөц байгаа бол нөөцөө ашиглан өгөгдлийг сэргээж болно. Үгүй бол та мэргэжлийн шинжээч эсвэл хэрэгслийг хайж олох хэрэгтэй авлигад идэгдсэн Excel файлууд.
Зохиогчийн танилцуулга:
Феликс Хүүкер бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. rar засвар болон sql сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com


