Excel бағдарламасында VBA арқылы жолды қалай табуға болады (8 мысал)

  • Мұны Бөлісіңіз
Hugh West

VBA енгізу - Excel бағдарламасындағы кез келген операцияны орындаудың ең тиімді, жылдам және қауіпсіз әдісі. Бұл мақалада біз Excel бағдарламасындағы VBA көмегімен басқа берілген жолда белгілі бір жолдарды қалай табуға болатынын көрсетеміз.

Тәжірибе үлгісін жүктеп алу

Сіз тегін практикалық Excel үлгісін осы жерден жүктеп алуға болады.

VBA үшін String.xlsm

InStr функциясы

Microsoft Excel бағдарламасында берілген жолдағы нақты жолдардың орнын табу үшін InStr функциясы деп аталатын кірістірілген функция бар.

Жалпы синтаксис:

InStr([start], string1, string2, [compare])

Мұнда,

Аргументтер Міндетті/ Қосымша Анықтама
бастау Қосымша Іздеудің бастапқы позициясы.
  • Әдепкі бойынша, InStr функциясы таңба орнын бастапқы орыннан емес, 1-ден санау арқылы есептейді. Сондықтан, егер қаласаңыз, бұл бос қалдыруға болады.
string1 Міндетті Іздейтін жол, Негізгі жол.
2-жол Міндетті Негізгі жолда ізделетін жол .
салыстырыңыз Қосымша InStr функциясы әдепкі бойынша регистрді ескереді. Бірақ регистрді ескермейтін InStr іске қосқыңыз келсе, белгілі бір салыстыруды орындау үшін аргументті осында жібере аласыз. Бұл аргумент келесідей болуы мүмкінмәндер,
  • vbBinaryCompare -> екілік салыстыруды орындайды, қайтаратын мән 0
  • vbTextCompare -> мәтінді салыстыруды орындайды, 1 мәнін қайтарады
  • vbDatabaseCompare -> дерекқорды салыстыруды орындайды, қайтаратын мән 2

Әдепкі бойынша InStr салыстыру аргументі ретінде vbBinaryCompare қабылдайды.

VBA көмегімен берілген жолдағы нақты жол орнын табудың 8 оңай мысалдары

Келіңіздер, берілген жолдағы белгілі бір жолдардың орнын алу үшін қарапайым мысалдарды көрейік. VBA .

1. Жолдағы мәтін орнын табу үшін VBA

Төменде табу үшін InStr мысалы берілген. мәтіннің жолдағы орны.

  • Пернетақтада Alt + F11 пернелерін басыңыз немесе Әзірлеуші ​​-> қойындысына өтіңіз; Visual Basic Visual Basic өңдегішін ашу үшін.

  • Қалқымалы код терезесінде мәзір жолағынан , Кірістіру -> Модуль .

  • Енді код терезесінде VBA Sub ішінде қарапайым InStr бағдарламасын жазыңыз. Процедура (төменде қараңыз).
4868

Сіздің кодыңыз енді іске қосуға дайын.

  • F5 пернесін басыңыз. пернетақтада немесе мәзір жолағынан Іске қосу -> Sub/UserForm іске қосыңыз. Сондай-ақ макросты іске қосу үшін ішкі мәзір жолағындағы кіші Ойнату белгішесін басуға болады.

Сіз мынаны көресіз қалқымалы хабар терезесі сізге нөмір бередітексергіңіз келетін мәтіннің орнын жариялау .

Түсіндіру:

Біздің негізгі жолымыз, « Бақыт таңдау » 21 әріптен тұратын сөйлем (бос орындар бар) және біз сол жолда « таңдау » мәтінінің орнын тапқымыз келді. « таңдау » мәтіні негізгі жолдың 16-шы позициясынан басталды, сондықтан біз хабарлама жолағындағы нәтиже ретінде 16 санын алдық.

2. Жолдағы белгілі бір орыннан мәтінді табу үшін VBA

Енді белгілі бір саннан позицияны алғымыз келсе не болатынын білейік.

  • Сол сияқты бұрын Әзірлеуші қойындысынан Visual Basic редакторын ашыңыз және код терезесінде Кірістіру Модуль .
  • Ішінде. код терезесінде жоғарыда көрсетілген қарапайым InStr бағдарламасын жазыңыз және мәтінді санағыңыз келетін орынға сәйкес бастау аргументіндегі мәнді беріңіз.
8412

  • Кейін, Іске қосу код.

Сіз қалқымалы хабар терезесі ашылатынын көресіз. Сізге тексергіңіз келген белгілі бір позициядан басталатын мәтіннің орнын жариялайтын санды беріңіз.

Түсіндіру:

Біз (1-кезеңдегі талқылаудан) « таңдау » мәтіні 16 позициясынан басталғанын білгендіктен, біз екі « таңдау ” негізгі жолда және біздің ретінде 17 орнатыңызБірінші « таңдау » өткізіп жіберетін 1-ші параметр. Сонымен, біз жоғарыдағы макросты Орындаймыз және ол бізге 27 позиция нөмірін көрсетті, бұл дәл екінші таңдау ” позициясының нөмірі. берілген жолда.

3.

Жолдағы регистрді сезбейтін InStr функциясы бар мәтінді табу үшін VBA InStr функциясын енгізуден сіз әдепкі бойынша InStr функциясы екенін білесіз. регистрге сезімтал. Мұны мысалмен анықтайық.

Келесі VBA кодын қараңыз, мұнда біз “ Таңдау сөзінің орнын тапқымыз келді. ” « Бақыт – таңдау » жолындағы бас әріппен “C” , мұнда таңдау кіші “c” әрпімен жазылады. .

  • кодты іске қосыңыз және нәтиже ретінде 0 табыңыз.

Себебі InStr функциясы бас «C» және кіші «c» әр түрлі қарайды. Сондықтан ол жолдан “ Таңдау ” сөзін іздеп, сәйкестік таппады, сондықтан 0 қайтарды.

  • InStr функциясын регистрді ескермейтін ету үшін, салыстыру аргументін vbTextCompare мәніне орнатыңыз (төменде қараңыз).
3907

  • кодты іске қосыңыз .

Сіз мәтіннің позициясын аласыз жолдан, мәтін бас әріптермен немесе кіші әріптермен жазылады.

4. Жолдың оң жағындағы мәтінді табу үшін VBA

Осы уақытқа дейін InStr функциясы бізге жолдың сол жағындағы орынды ғана беріп келді. Бірақ жолдың оң жағынан мәтін орнын тапқыңыз келсе ше.

InStrRev функциясы оң жақтан іздейді. InStrRev функциясы InStr функциясына өте ұқсас жұмыс істейді және ол сізге жолдың оң жағындағы мәтіннің орнын табады.

Айырмашылықты түсіну үшін келесі мысалдарды қараңыз.

  • Егер келесі кодты InStr функциясымен іске қоссақ,

ол бізге « таңдау » бірінші мәтінінің орнын ( 16 ) береді.

  • Бірақ InStrRev функциясымен бірдей кодты іске қоссақ,

ол бізге позицияны береді ( 27 ) соңғы мәтіннің “ таңдау ”.

Ұқсас оқылымдары:

  • FindNext Excel бағдарламасында VBA көмегімен (2 мысал)
  • VBA көмегімен қалай табуға және ауыстыруға болады (11 жол)
  • Excel бағдарламасында VBA көмегімен дәл сәйкестікті табу (5 әдіс)

5. Жолдағы таңбаның орнын табу үшін VBA

Сонымен қатар мәтінді тапқандай жолдағы белгілі бір таңбаның орнын табуға болады.

  • Көшіру келесі кодты VBA код терезесіне
3177

  • және іске қосу макрос.

Біздің берілген жолдағы бірінші “ e ”саны 7 орны.

6. Жолдағы ішкі жолды табу үшін VBA

Осы жерде біз жолда ішкі жол бар ма, жоқ па табуды үйренеміз.

Оны алу үшін бізде бар кодымызда IF мәлімдемесін іске қосу үшін.

  • Бұрынғы сияқты, Әзірлеуші қойындысынан Visual Basic өңдегішін ашыңыз және Код терезесіне Модуль кірістіру .
  • Код терезесінде келесі кодты көшіріп, оны қойыңыз.
6403

Сіздің код енді іске қосуға дайын.

  • макросты іске қосыңыз.

Егер жолыңызда ішкі жол болса, сіз сәйкестік табылды аласыз, әйтпесе сәйкестік табылған жоқ. Біздің мысалда біз « Бақыт - таңдау » негізгі жолында « таңдау » сөзі бар-жоғын білгіміз келді. емес. Осылайша біз Сәйкестік табылды нәтижесін аламыз.

7. Ұяшық ауқымында жолды табу үшін VBA

Жолдың ұяшық диапазонында белгілі бір мәтінді іздеуге және белгілі бір жолды қайтаруға болады.

Келесі мысалды қараңыз. “ Доктор ” дегенді табыңыз және сәйкестік болған кезде ол “ Доктор ” деп қайтарады.

  • Төменде жоғарыда талқыланған нәтижені алу үшін код берілген,
3257

  • Іске қосу код және нәтиже төменде көрсетілген

  • Сіз макросты қажетіңізге қарай өзгерте аласыз. Мысалы, егер қаласаңызжолдың кез келген ұяшығынан “ Проф. ” табу үшін және қайтару ретінде “ Профессор ” алыңыз, содан кейін жай ғана “<1” өтіңіз> Проф. ” мән ретінде “ Dr ” орнына. макростың 4-жолында және макростың 5-жолындағы « Доктор » орнына « Профессор » және оны анықтаңыз. сәйкес ұяшық диапазонының нөмірі.

8. Ұяшықтағы жолды табу үшін VBA

Сонымен қатар белгілі бір мәтінді жолдың бір ұяшығынан іздеуге және белгілі бір жолды қайтаруға болады.

  • Келесі кодты көшіріп, код терезесіне қойыңыз.
9619

Ол “ Доктор <2 іздейді>” B5 ұяшығында және сәйкестікті тапса, C5 ұяшығында “ Дәрігер ” мәнін қайтарады.

  • Сіз макросты қажетіңізге қарай өзгерте аласыз. Мысалы, жолдың кез келген ұяшығынан “ Проф. ” тауып, қайтару ретінде “ Профессор ” алғыңыз келсе, содан кейін жай ғана “ Доктор ” орнына мән ретінде “ Проф. ” беріңіз. макростың 2-жолында және макростың 3-жолындағы « Доктор » орнына « Профессор » және оны анықтаңыз. сәйкес ұяшық сілтеме нөмірі.

Қорытынды

Бұл мақала VBA макросы арқылы Excel бағдарламасындағы жолда белгілі бір мәтіндерді табу жолын көрсетті. Бұл мақала сізге өте пайдалы болды деп үміттенемін. қатысты кез келген сұрақтар қоюға боладытақырып.

Хью Уэст – салада 10 жылдан астам тәжірибесі бар жоғары тәжірибелі Excel тренері және талдаушысы. «Бухгалтерлік есеп және қаржы» мамандығы бойынша бакалавр дәрежесі және іскерлік әкімшілендіру магистрі дәрежесі бар. Хью оқытуға құмар және ұстануға және түсінуге оңай бірегей оқыту әдісін әзірледі. Оның Excel бағдарламасындағы сараптамалық білімі бүкіл әлем бойынша мыңдаған студенттер мен мамандарға біліктіліктерін арттыруға және мансаптық жетістіктерге жетуге көмектесті. Блогы арқылы Хью өз білімін әлеммен бөліседі, жеке адамдар мен бизнеске толық әлеуетін ашуға көмектесу үшін тегін Excel оқулықтары мен онлайн тренингтерін ұсынады.