Агуулгын хүснэгт
Бид хэрэглэгчийн тодорхойлсон функцүүдийн талаархи цуврал хичээлүүдийг үргэлжлүүлж байна. Өмнөх нийтлэлүүддээ бид захиалгат функцуудтай танилцаж, тэдгээрийг хэрхэн үүсгэх, ашиглах талаар олж мэдсэн. Энэ гарын авлагад бид эдгээр функцийг ашиглах онцлогийг авч үзэх ба UDF болон VBA макроны ялгааг харах болно.
Энэ зааварт бид дараах зүйлсийг сурах болно:
Энэ нийтлэл нь UDF-ийн талаарх таны мэдлэгийг нэмэгдүүлж, Excel-ийн ажлын дэвтэртээ илүү үр дүнтэй ашиглахад тусална гэж найдаж байна.
UDF болон Макро нь ижил зүйл мөн үү?
Хэрэглэгчийн тодорхойлсон функцууд болон VBA хоёулаа VBA засварлагч ашиглан макро үүсгэдэг. Тэдгээрийн ялгаа нь юу вэ, юунд давуу эрх олгох вэ?
Хамгийн гол ялгаа нь функц нь тооцооллыг гүйцэтгэдэг бөгөөд макро нь зарим үйлдлийг гүйцэтгэдэг. Энгийн Excel функц шиг хэрэглэгчийн тодорхойлсон функцийг нүдэнд бичих ёстой. Гүйцэтгэлийнхээ үр дүнд нүд тодорхой утгыг буцаана. Үүний зэрэгцээ бусад нүднүүдийн утгууд, түүнчлэн одоогийн нүдний зарим шинж чанарыг (ялангуяа форматлах) өөрчлөх боломжгүй юм. Гэсэн хэдий ч, та нөхцөлт форматлах томъёонд тусгай функцийг ашиглаж болно.
UDF болон VBA макро өөр өөр аргаар ажилладаг. Жишээлбэл, та Visual Basic Editor дээр UDF үүсгэхдээ Function хэллэгээр эхэлж End Function -ээр төгсдөг. Та макро бичихдээ a-аас эхэлдэг Дэд мэдэгдэл ба Төгсгөлийн дэд тэмдэгтээр төгсдөг.
Бүх Visual Basic операторуудыг UDF үүсгэхэд ашиглаж болохгүй. Ийм учраас макро нь илүү уян хатан шийдэл юм.
Макро нь хэрэглэгчийн тодорхойлсон функцээс ялгаатай нь хэрэглэгчээс ямар ч аргумент дамжуулахыг шаарддаггүй (мөн ямар ч аргумент хүлээн авах боломжгүй).
Макроны зарим команд нь нүдний хаяг эсвэл форматлах элементүүдийг (жишээ нь, өнгө) ашиглаж болно гэсэн үг юм. Хэрэв та нүднүүдийг зөөж, мөр, багана нэмж, устгаж, нүдний форматыг өөрчилбөл макроо амархан "эвдэж" чадна. Энэ нь ялангуяа, хэрэв та өөрийн макро хэрхэн ажилладагийг мэдэхгүй хамтран ажиллагсадтайгаа файлаа хуваалцвал боломжтой.
Жишээ нь, танд төгс ажилладаг макро файл байна. Энэ томьёо нь А1-аас А4 хүртэлх нүдний эзлэх хувийг тооцдог. Макро нь эдгээр эсийн өнгийг шар болгож өөрчилдөг. Идэвхтэй нүдэнд хувийн форматыг тохируулсан.
Хэрэв та эсвэл өөр хэн нэгэн шинэ мөр оруулахаар шийдсэн бол макро нь A4 нүдн дэх утгыг үргэлжлүүлэн хайх болно ( таны UDF-н 4,1 параметр) алдаа гаргавал алдаа гаргана:
Энэ тохиолдолд тэгээр хуваагдсаны улмаас алдаа гарсан (шинээр нэмэгдсэнд утга байхгүй) эгнээ). Хэрэв макро гүйцэтгэсэн тохиолдолд, нийлбэр гэж хэлье, тэгвэл та зүгээр л буруу үр дүнд хүрэх болно. Гэхдээ та энэ талаар мэдэхгүй байх болно.
Макроос ялгаатай нь хэрэглэгчийн тодорхойлсон функцууд нь ийм таагүй нөхцөл байдлыг үүсгэж чадахгүй.
Доорх нь гүйцэтгэлийг харна уу.UDF ашиглан ижил тооцоо. Энд та ажлын хуудасны аль ч хэсэгт оруулах нүднүүдийг зааж өгөх боломжтой бөгөөд үүнийг өөрчлөх үед гэнэтийн асуудал гарахгүй.
Би дараах томъёог C3 дээр бичсэн:
=UDF_vs_Macro(A1,A4)
Дараа нь би хоосон мөр оруулсан ба томьёо нь дээрх дэлгэцийн агшин дээр харагдаж байгаа шиг өөрчлөгдсөн.
Одоо бид оролтын нүд эсвэл функцтэй нүдийг хаана ч зөөж болно. Үр дүн нь үргэлж зөв байх болно.
UDF ашиглахын нэмэлт давуу тал нь оролтын нүдэн дэх утга өөрчлөгдөхөд автоматаар шинэчлэгддэг. Макро ашиглах үед та бүх өгөгдөл шинэчлэгдсэн байх ёстой.
Энэ жишээг санаж, би аль болох UDF-г ашиглахыг илүүд үзэж, зөвхөн бусад тооцоололгүй үйл ажиллагаанд макро ашиглахыг хүсэж байна.
UDF-ийн хязгаарлалт ба сул талууд
Би дээр UDF-ийн давуу талуудын талаар дурдсан. Товчхондоо энэ нь Excel-ийн стандарт функцээр боломжгүй тооцооллыг хийж чадна. Нэмж дурдахад энэ нь урт, нарийн төвөгтэй томъёог хадгалж, ашиглаж, тэдгээрийг нэг функц болгон хувиргах боломжтой. Мөн та нарийн төвөгтэй томьёог дахин дахин бичих шаардлагагүй болно.
Одоо UDF-ийн дутагдлын талаар дэлгэрэнгүй ярья:
- UDF үүсгэхийн тулд VBA ашиглах шаардлагатай. Үүнийг тойрч гарах арга алга. Энэ нь хэрэглэгч UDF-г Excel макротой адил бичиж чадахгүй гэсэн үг юм. Та өөрөө UDF үүсгэх ёстой. Гэсэн хэдий ч та хуулж болноӨмнө нь бичигдсэн макро кодын зарим хэсгийг функцдээ буулгана уу. Та зүгээр л захиалгат функцүүдийн хязгаарлалтыг мэдэж байх хэрэгтэй.
- UDF-ийн өөр нэг сул тал бол Excel-ийн бусад функцүүдийн нэгэн адил нүд рүү зөвхөн нэг утга эсвэл массив утгыг буцааж чаддаг явдал юм. Энэ нь зүгээр л тооцоо хийдэг, өөр юу ч биш.
- Хэрэв та ажлын дэвтрээ хамтран ажиллагсадтайгаа хуваалцахыг хүсвэл UDF-ээ нэг файлд хадгалахаа мартуузай. Үгүй бол таны захиалгат функцууд тэдгээрт ажиллахгүй.
- VBA засварлагчаар үүсгэсэн тусгай функцууд нь энгийн функцуудаас удаан байдаг. Энэ нь ялангуяа том хүснэгтүүдэд мэдэгдэхүйц юм. Харамсалтай нь VBA нь маш удаан програмчлалын хэл юм. Тиймээс, хэрэв танд маш их өгөгдөл байгаа бол аль болох стандарт функцуудыг ашиглах эсвэл LAMBDA функцийг ашиглан UDF үүсгэхийг хичээгээрэй.
Захиалгат функцийн хязгаарлалт:
- UDFs тооцоолол хийж, утгыг буцаахад зориулагдсан. Тэдгээрийг макроны оронд ашиглах боломжгүй.
- Тэд бусад нүдний агуулгыг өөрчлөх боломжгүй (зөвхөн идэвхтэй нүд).
- Функцийн нэр нь тодорхой дүрмийг дагаж мөрдөх ёстой. Жишээлбэл, та AB123 гэх мэт Excel-ийн үндсэн функцийн нэр эсвэл нүдний хаягтай таарч тохирох нэрийг ашиглах боломжгүй.
- Таны захиалгат функц нэрэнд хоосон зай агуулж болохгүй, гэхдээ доогуур зураасыг оруулж болно. Гэхдээ шинэ үг бүрийн эхэнд том үсгээр бичихийг илүүд үздэг арга юмүг (жишээ нь, GetMaxBetween).
- UDF нь нүднүүдийг ажлын хуудасны бусад хэсэгт хуулж буулгах боломжгүй.
- Тэд идэвхтэй ажлын хуудсыг өөрчлөх боломжгүй.
- UDFs боломжтой' t идэвхтэй нүдэн дэх форматыг өөрчлөх. Хэрэв та өөр утгыг харуулах үед нүдний форматыг өөрчлөхийг хүсвэл нөхцөлт форматыг ашиглах хэрэгтэй.
- Тэд нэмэлт ном нээх боломжгүй.
- Тэдгээрийг Application.OnTime ашиглан макро ажиллуулах боломжгүй. .
- Хэрэглэгчийн тодорхойлсон функцийг макро бичигч ашиглан үүсгэх боломжгүй.
- Функцууд Хөгжүүлэгч > Макро харилцах цонх.
- Таны функцууд харилцах цонхонд ( Оруулах > Функц ) болон Нийтийн<7 гэж зарлагдсан тохиолдолд л функцуудын жагсаалтад гарч ирнэ> (өөрөөр заагаагүй бол энэ нь өгөгдмөл юм).
- Хувийн гэж зарласан ямар ч функц функцүүдийн жагсаалтад харагдахгүй.
Нэлээд удаашралтай ажиллагаа. , түүнчлэн ашиглалтын зарим хязгаарлалтууд нь танд "Эдгээр захиалгат функцууд нь юунд хэрэгтэй вэ?" гэж бодоход хүргэж магадгүй юм.
Тэдгээр нь хэрэг болох бөгөөд хэрэв бид тэдгээрт тавьсан хязгаарлалтыг анхаарч үзвэл үүнийг хийж чадна. Хэрэв та UDF-г хэрхэн зөв үүсгэж, ашиглах талаар сурвал функцүүдийн номын сангаа бичиж болно. Энэ нь таны Excel-ийн өгөгдөлтэй ажиллах чадварыг ихээхэн нэмэгдүүлэх болно.
Миний хувьд захиалгат функцууд нь цаг хэмнэдэг. Харин Чинии хувьд? Та аль хэдийн өөрийн UDF үүсгэх гэж оролдсон уу? Чамд энэ таалагдсан ууExcel-ийн үндсэн функцээс илүү сайн уу? Сэтгэгдэл дээр ярилцъя :)