Мазмұны
VBA енгізу - Excel бағдарламасындағы кез келген операцияны орындаудың ең тиімді, жылдам және қауіпсіз әдісі. Бұл мақалада біз Excel бағдарламасындағы VBA көмегімен басқа берілген жолда белгілі бір жолдарды қалай табуға болатынын көрсетеміз.
Тәжірибе үлгісін жүктеп алу
Сіз тегін практикалық Excel үлгісін осы жерден жүктеп алуға болады.
VBA үшін String.xlsm
InStr функциясы
Microsoft Excel бағдарламасында берілген жолдағы нақты жолдардың орнын табу үшін InStr функциясы деп аталатын кірістірілген функция бар.
Жалпы синтаксис:
InStr([start], string1, string2, [compare])
Мұнда,
Аргументтер | Міндетті/ Қосымша | Анықтама |
---|---|---|
бастау | Қосымша | Іздеудің бастапқы позициясы.
|
string1 | Міндетті | Іздейтін жол, Негізгі жол. |
2-жол | Міндетті | Негізгі жолда ізделетін жол . |
салыстырыңыз | Қосымша | InStr функциясы әдепкі бойынша регистрді ескереді. Бірақ регистрді ескермейтін InStr іске қосқыңыз келсе, белгілі бір салыстыруды орындау үшін аргументті осында жібере аласыз. Бұл аргумент келесідей болуы мүмкінмәндер,
Әдепкі бойынша 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 бағдарламасындағы жолда белгілі бір мәтіндерді табу жолын көрсетті. Бұл мақала сізге өте пайдалы болды деп үміттенемін. қатысты кез келген сұрақтар қоюға боладытақырып.