VBA дээр InStr функцийг хэрхэн ашиглах вэ (3 хялбар жишээ)

  • Үүнийг Хуваалц
Hugh West

Excel VBA кодуудтай ажиллах явцад бид нарийн төвөгтэй ажлыг жижиг нэг мөр код болгон хувиргах хэд хэдэн суулгасан функцтэй тааралддаг. InStr нь Excel VBA-д байдаг функц бөгөөд өгөгдсөн байрлалаас эхлэн өөр өгөгдсөн мөр доторх тодорхой мөрийг хайдаг. Өнөөдөр би танд VBA дахь InStr функцийг өөр өгөгдсөн стринг доторх тодорхой стринг хайхын тулд хэрхэн ашиглахыг харуулах болно.

Дадлагын ажлын номыг татаж авах

InStr Function.xlsm

VBA InStr функцийн танилцуулга

  • Тогтоон

Өгөгдсөн байрлалаас эхлэн өгөгдсөн мөр доторх тодорхой мөрийг хайдаг. Хэрэв тохирохыг олсон бол тоглолт эхэлсэн газраас өгөгдсөн мөр дэх байрлалыг буцаана.

  • Синтакс

InStr([эхлэх ],string1,string2,[харьцуулах])

  • Аргументууд
Аргумент ШААРДЛАГА ТОДОРХОЙЛОЛТ

[эхлэх] Заавал биш Хайж эхлэх байрлал. Өгөгдмөл нь 1.
string1 Заавал Өгөгдсөн мөрийг хайдаг мөр.
string2 Шаардлагатай Өгөгдсөн стринг дотор хайдаг мөр.
[харьцуулах] Сонголт Харьцуулах төрлийг зааж өгөх {-1,0,1,2}-ын хоорондох тоон утга. Theанхдагч нь -1 (vbUseCompareOption). Хэрэв Option Compare командыг заагаагүй бол Хоёртын харьцуулалтыг гүйцэтгэнэ үү.

Тэмдэглэл:

  • Хэдийгээр [эхлэх] аргумент болон [харьцуулах] аргумент нь сонголттой бөгөөд хэрэв та [харьцуулах] аргументыг зааж өгсөн бол [эхлэх] аргумент хэрэгтэй болно. Үгүй бол энэ нь алдаа гаргах болно.
  • Хэрэв [эхлэх] аргумент ба [харьцуулах] аргументуудын аль нэг нь эсвэл хоёулаа Үгүй<2 бол>, та алдаатай тулгарах болно.
  • [харьцуулах] аргумент дахь дөрвөн заасан утга нь дөрвөн өөр төрлийн харьцуулалтыг гүйцэтгэдэг. Тэдгээрийг доор дурьдсан болно:
ҮНЭТ ТОРГОНТОЙ ТОДОРХОЙЛОЛТ

-1 vbUseCompareOption Д заасан харьцуулалтыг гүйцэтгэнэ Option Compare мэдэгдэл.
0 vbBinaryCompare Хоёртын харьцуулалтыг гүйцэтгэдэг.
1 vbTextCompare Текстийн харьцуулалт хийнэ.
2 vbDatabaseCompare Таны мэдээллийн санд тулгуурлан харьцуулалт хийнэ. .
  • Хувилбарыг харьцуулах мэдэгдэл нь үндсэн VBA код эхлэхээс өмнө өгсөн мэдэгдэл юм. Энэ нь код нь шаардлагатай үед хоёртын харьцуулалт эсвэл текстийн харьцуулалтыг хайх эсэхийг заадаг.

Текстийг харьцуулах сонголт

    • Энгийн хэллэгээр , Хоёртын харьцуулалт том жижиг жижиг үсгээр харуулдаг гэсэн үгхарьцуулалт.
    • Энгийн хэллэгээр , Текстийн харьцуулалт жижиг жижиг жижиг харьцуулалт гэсэн үг.
  • Буцах утга
    • мөр2 эхэлсэн мөр1 дахь байрлалыг буцаана.
    • мөр2 олдохгүй тохиолдолд мөр1 дотор эхлэх байрлалаас эхлэн 0-ийг буцаана.
    • Хэрэв мөр1 нь тэг урттай бол 0-ийг буцаана.
    • Хэрэв мөр2 нь тэг урттай бол эхлэх аргументыг буцаана.
    • Эцэст нь мөр1 эсвэл string2 нь Null , алдаа буцаана.

VBA InStr функцийг ашиглахад хялбар 3 жишээ

Энэ хэсэгт бид Excel дээр VBA InStr функцийг ашиглах гурван хялбар жишээг харах болно. VBA кодын InStr функцийн эхний жишээг харцгаая.

1. VBA InStr функцийг ашигласнаар хаяг нь имэйл хаяг мөн эсэхийг шийдэх

Энд бид харилцагчдын зарим холбоо барих хаягийг агуулсан өгөгдлийн багцыг авсан. Бидний зорилго бол хаягууд нь имэйл хаяг мөн эсэхийг тодорхойлох явдал юм.

Одоо бид VBA кодыг InStr функцийг ашиглан тодорхойлох болно. Энэ нь имэйл хаяг эсэхээс үл хамааран. Үүнийг хийхийн тулд доорх алхмуудыг дагана уу.

Алхам:

  • Эхлээд Хөгжүүлэгч таб руу очоод <-г сонгоно уу. 1>Visual Basic ( Эсвэл Alt+F11) дарж VBA -г нээнэ үү.цонх.

  • Дараа нь VBA цонхноос Insert > Модуль .

  • Үүний дараа модуль дээр дараах кодыг оруулна уу:
4149

  • Түүнээс гадна бид ШИЙДВЭР гэсэн функц үүсгэсэн. Энэ нь хаяг нь имэйл хаяг мөн эсэхийг шийддэг. Бидэнд байгаа өгөгдлийн багцад функцийг хэрэгжүүлье.
  • C5 нүдэнд дараах томьёог бичээд Дүүргэх бариул -ыг ашиглан үлдсэн нүдийг автоматаар бөглөнө үү.
=DECISION(B5)

  • Бидний харж байгаагаар хаяг бүрийг имэйл хаяг мөн эсэхийг тодорхойлсон. эсвэл үгүй.

🎓 Код хэрхэн ажилладаг вэ?

  • Функц DECISION(string1 As String)

Эхлээд энэ нь DECISION нэртэй функцийг үүсгэнэ. мөр1 нэртэй мөр аргумент.

  • Байрлалыг бүхэл тоогоор бүдгэрүүлэх

Энэ нь Байршил<нэртэй бүхэл тоон хувьсагчийг зарладаг. 2>.

  • Байршил = InStr(1, string1, “@”, 0)

Энэ нь -ийн утгыг өгдөг. 1, string1, “@” болон 0 аргументуудтай InStr функцийн гаралт болох хувьсагчийг байршуулна. Товчхондоо, энэ нь “@” байгаа хаяг дахь байрлалыг онооно.

  • Хэрэв Байрлал = 0 бол ШИЙДВЭР = “И-мэйл биш”

Энэ нь ШИЙДВЭР функцийн гаралтыг “И-мэйл биш” гэж оноодог, хэрэв Байршил хувьсагч нь 0 бөгөөд энэ нь хаягт “@” байхгүй гэсэн үг.

(Өгөгдсөн мөр дотор ямар нэгэн тэмдэгт мөр олдоогүй бол <-г эргэн санах хэрэгтэй. 1>InStr функц нь 0 -г буцаана).

  • Үгүй бол DECISION = "И-мэйл"

Энэ нь хаягт “@” тэмдэгтэй байсан бол ШИЙДВЭР функцийн гаралтыг “И-мэйл” гэж гаргана. Тиймээс “@” байгаа хаягуудыг И-мэйл , бусад нь “Имэйл биш” гэж ангилдаг.

Ижил төстэй уншлага

  • Excel-д VBA UCASE функцийг хэрхэн ашиглах вэ (4 жишээ)
  • Excel VBA-д MsgBox функцийг ашиглах (Бүрэн заавар)
  • Excel дээр VBA SPLIT функцийг хэрхэн ашиглах (5 жишээ)
  • Excel дээрх VBA-д LCase функцийг ашиглах 4 Жишээ)
  • Excel VBA дээр засах функцийг хэрхэн ашиглах вэ (4 жишээ)

2. VBA InStr функцийг Зарим и-мэйл хаягийн өргөтгөлийг задлахад ашиглах нь

Энд бид зарим үйлчлүүлэгчийн зарим имэйл хаягийн жагсаалтыг үзүүлэв. Энэ удаад бид gmail.com эсвэл yahoo.com байгаа эсэх гэх мэт имэйл хаягийн өргөтгөлийг задлах болно.

Үүнийг хийхийн тулд доорх алхмуудыг дагана уу.

Алхам:

  • Эхлэхийн тулд өмнөх аргын адил шинэ VBA<2 нээнэ үү> модулийг сонгоод цонхонд дараах кодыг оруулна уу.
1402

  • Үүнээс гадна бид нэртэй функц үүсгэсэн. ӨРГӨТГӨЛ . Энэ нь дурын имэйл хаягийн өргөтгөлийг задалдаг.
  • Цаашилбал, энэ функцийг өөрт байгаа өгөгдлийн багцад ашиглая. Эхлээд C5 нүдэнд энэ томьёог оруулаад Дүүргэх бариул дээр давхар товшино уу.
=EXTENSION(B5)

  • Эцэст нь бид бүх имэйлийн өргөтгөлийг амжилттай задалж чадсаныг харж байна.

🎓 Код хэрхэн ажилладаг вэ?

  • Function EXTENSION(И-мэйл байдлаар мөр)

Энэ нь EXTENSION нэртэй шинэ функцийг үүсгэнэ. И-мэйл нэртэй мөрийн аргумент.

  • Байрлалыг бүхэл тоогоор бүдгэрүүлэх

Энэ хэсэг нь Байршил нэртэй бүхэл тоон хувьсагчийг зарладаг. .

  • Байршил = InStr(1, Имэйл, “@”, 0)

Энэ нь <1-ийн утгыг онооно>Position хувьсагч нь InStr функцын гаралт болох 1, Email, “@” болон 0 аргументуудтай. Товчхондоо, энэ нь “@” байгаа И-мэйл -д байрлалыг онооно.

  • ӨРГӨТГӨЛ = Зөв(И-мэйл, (Лен (И-мэйл) – Байрлал))

Энэ хэсэг нь “@” тэмдгийн ард тэмдэгтээр ӨРГӨТГӨЛТ функцын гаралтыг онооно. Энэ нь И-мэйл -ийн шаардлагатай өргөтгөл юм.

3. VBA InStr функцийг ашиглан Нэрнээс овог нэрээ гаргаж авах

Эцэст нь бид өвөрмөц өөр даалгавар гүйцэтгэх болно. Энэ удаад бид зарим ажилчдын нэрсийг хүргэж байнакомпани. Мөн бид ажилчдын нэр эсвэл овог нэрийг гаргаж авах функцийг бүтээхийг хичээх болно.

Үүний тулд доорх алхмуудыг дагана уу.

Алхам:

  • Нэгдүгээрт, арга 1 -тэй адил доорх кодыг VBA  цонхонд шинэ модульд оруулна.
8850

  • Энд бид SHORTNAME нэртэй функцийг үүсгэсэн бөгөөд энэ нь нэр эсвэл овог нэрийн аль нэгийг гаргаж авдаг. Энэ томьёог өгөгдлийн багцдаа хэрэглэцгээе.
  • Эхлээд нэрийг гаргаж авахын тулд доорх томьёог C5 нүдэнд бичнэ үү.
=SHORTNAME(B5,-1)

  • Эцэст нь овог нэрийг задлахын тулд бид D5 -д дараах томьёог бичнэ:
=SHORTNAME(B5,1)

  • Дараа нь үлдсэн нүднүүдийг Fill Handler<2-ээр автоматаар дүүргэх юм бол>, бид хүссэн үр дүнгээ харах болно.

🎓 Код хэрхэн ажилладаг вэ?

  • SHORTNAME функц (Нэр нь мөр, эхний_эсвэл_сүүлийн бүхэл тоо)

Энэ нь SHORTNAME<2 гэсэн шинэ функц үүсгэдэг> Нэр нэртэй нэг мөр аргумент ба Эхний_сүүлийн нэртэй нэг бүхэл тоон аргументтай.

  • Бүтэн тоогоор бүдгэрүүлэх

Энэ хэсэг нь Break нэртэй шинэ бүхэл тоон хувьсагчийг зарлаж байна.

  • Break = InStr(1, Name, ” “, 0)

Энэ нь Break хувьсагчийн утгыг аргументуудтай InStr функцийн гаралт болгон оноодог. 1, Нэр, “ ” болон 0 . Товчхондоо, энэ нь хоосон зайтай (“ ”) Нэр -д байрлалыг онооно.

  • Хэрэв Эхний_эсвэл_Сүүлийн_хэрэв = -1 Дараа нь SHORTNAME = Зүүн(Нэр, Завсарлага – 1)

Энэ мөр нь SHORTNAME функцын гаралтыг зай -ын өмнөх тэмдэгт болгон онооно. хэрэв Эхний_эсвэл_Сүүлийн аргумент нь -1 бол. Энэ бол анхны нэр.

  • SHORTNAME = Баруун(Нэр, Лен(Нэр) – Завсарлага)

Энэ хэсэг нь Хэрэв Эхний_эсвэл_Сүүлийн аргумент нь 1 бол SHORTNAME нь зай -ын дараах тэмдэгтүүдийн үүрэг гүйцэтгэдэг. Энэ бол овог нэр юм.

Дүгнэлт

Ийм байдлаар та InStr функцээр VBA код бичиж болох бөгөөд энэ нь өөр өгөгдсөн доторх тодорхой мөрийн байрлалыг олж мэдэх боломжтой. string, дараа нь та төрөл бүрийн хэрэглээнд зориулж өөрийн функцүүдийг үүсгэж болно. Цаашилбал, танд асуух зүйл байвал биднээс асуугаарай.

Хью Уэст бол салбартаа 10 гаруй жил ажилласан туршлагатай Excel-ийн сургагч багш, шинжээч юм. Нягтлан бодох бүртгэл, санхүүгийн чиглэлээр бакалавр, бизнесийн удирдлагын магистр зэрэгтэй. Хью багшлах сонирхолтой бөгөөд дагаж мөрдөх, ойлгоход хялбар заах өвөрмөц арга барилыг боловсруулсан. Түүний Excel-ийн мэдлэг чадвар нь дэлхий даяарх олон мянган оюутан, мэргэжилтнүүдэд ур чадвараа дээшлүүлж, ажил мэргэжлээрээ амжилт гаргахад тусалсан. Хью өөрийн блогоороо дамжуулан өөрийн мэдлэгээ дэлхийтэй хуваалцаж, Excel програмын үнэгүй зааварчилгаа, онлайн сургалтыг хувь хүмүүс болон бизнесүүдэд бүрэн дүүрэн ашиглахад нь туслах зорилгоор санал болгодог.