Satura rādītājs
Ja meklējat dažus no vienkāršākajiem veidiem, kā atrast apakšvirzienu, izmantojot VBA, tad esat īstajā vietā. Pēc šī raksta izlasīšanas jūs varēsiet viegli atrast apakšvirziena pozīciju vai iegūt datus, izmantojot šo apakšvirzienu, vai mainīt apakšvirziena formātu. Iesim raksta turpinājumā.
Lejupielādēt darbgrāmatu
Parauga saturs9 veidi, kā atrast apakšvirzienu, izmantojot VBA
Šeit man ir šāda datu tabula, kurā es parādīšu, kā atrast apakšvirzienu virknē, izmantojot VBA. Es arī mēģināšu parādīt, kā atrast apakšvirzienu izlases virknē.
Esmu veicis šo uzdevumu, izmantojot Microsoft Excel 365 versiju, varat izmantot jebkuru citu versiju atbilstoši savām vajadzībām.
1. metode: Virknes apakšvirknes atrašana virknē, izmantojot VBA
Ja vēlaties atrast vajadzīgo apakšvirzienu virknē, izmantojot VBA, varat izmantot funkcija InStr VBA kodā.
Solis-01 :
➤Iet uz Izstrādātājs Cilne>> Visual Basic Iespēja
Tad Visual Basic redaktors atvērsies.
➤Iet uz Ievietot Cilne>> Modulis Iespēja
Pēc tam Modulis tiks izveidots.
Solis-02 :
➤Narakstiet šādu kodu
Sub FindFirst() Dim Pos As Integer Pos = InStr(1, "Es domāju, tāpēc es esmu", "domāju") MsgBox Pos End Sub
Šeit, InStr(1, "Es domāju, tāpēc es esmu", "domāju") atgriezīs virknes apakšvirknes pozīciju. 1 ir sākuma pozīcija, " Es domāju, tātad es esmu" ir virkne, kurā tiks atrasta vēlamā apakšvirkne, un "domāt" pēc noklusējuma tas ir apakšvirkne, ko vēlaties atrast. Pēc noklusējuma tas ir lielajiem un mazajiem burtiem jutīgs, tāpēc uzmanieties, kāda ir meklēšanai paredzētās apakšvirknes burtu un ciparu vērtība.
➤Press F5
Rezultāts :
Pēc tam jūs saņemsiet šādu informāciju. Ziņu lodziņš kurā ir norādīta atrašanās vieta "domāt" apakšvirkne.
2. metode: Uz lietām un burtiem nejūtīgas apakšvirknes atrašana virknē
Ja vēlaties atrast vēlamo apakšvirzienu virknē neatkarīgi no gadījuma, izmantojot VBA, izmantojiet šo metodi.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Public Sub caseinsensitive() Dim Pos As Integer Pos = InStr(1, "Es domāju, tāpēc es esmu", "domāju",vbTextCompare) MsgBox Pos End Sub
Šeit, vbTextCompare tiek izmantots, lai atrastu maznozīmīgu apakšvirzienu.
➤Press F5
Rezultāts :
Pēc tam jūs saņemsiet šādu informāciju. Ziņu lodziņš kurā ir norādīta atrašanās vieta "domāt" apakšvirkne.
To pašu varat izdarīt, izmantojot šādu kodu.
Iespēja Salīdzināt tekstu Public Sub caseinsensitive() Dim Pos As Integer Pos = InStr(1, "Es domāju, tāpēc es esmu", "domāju") MsgBox Pos End Sub
Šeit, Iespēja Salīdzināt tekstu atradīs maznozīmīgu apakšvirsrakstu, kas nav atkarīga no burtu un atbilstu burtu lielumiem.
➤Press F5
Rezultāts :
Pēc tam jūs iegūsiet šādu informāciju. Ziņu lodziņš kurā ir norādīta atrašanās vieta "domāt" zemsitērija.
3. metode: InstrRev funkcijas izmantošana VBA programmā
Šeit es parādīšu, kā atrast apakšvirzienu no virknes beigām.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Sub FindFromEnd() MsgBox InStrRev("Es domāju, tātad es esmu", "Es") End Sub
InStrRev tiks atrasta apakšvirkne no labās puses, nevis no kreisās puses.
➤Press F5
Rezultāts :
Pēc tam jūs saņemsiet šādu informāciju. Ziņu lodziņš kurā ir otrā "I" apakšvirkni no labās puses.
4. metode: Datu virknes apakšvirknes pozīcijas atrašana virknē datu diapazonā
Ja vēlaties atrast īpašo rakstzīmi "@" in the E-pasta identitāte , tad izmantojiet šo metodi. Es šeit esmu pievienojis Pozīcijas sleja šim nolūkam.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Funkcija FindSubstring(value As Range) As Integer Dim Pos As Integer Pos = InStr(1, value, "@") FindSubstring = Pos End Function
Tā izveidos funkciju ar nosaukumu FindSubstring (varat izmantot jebkuru citu nosaukumu)
vērtība ir šūnas atsauce, kas satur virkni, un tā ir deklarēta kā Diapazons .
Solis-02 :
➤Izvēlieties izeju Šūna E5
➤Type šādu funkciju (izveidots ar VBA )
=Substringa(D5)
D5 ir šūna, kurā atrodas virkne.
➤Press IEVADIET
➤Nosvītrojiet Uzpildes rokturis Rīks
Rezultāts :
Pēc tam jūs iegūsiet īpašā rakstzīmju pozīcijas. " @" in the E-pasta identitāte .
Līdzīgi lasījumi:
- Kā atrast virkni šūnā, izmantojot VBA programmā Excel (2 metodes)
- FindNext, izmantojot VBA programmā Excel (2 piemēri)
- Kā atrast virkni ar VBA programmā Excel (8 piemēri)
- VBA pēdējās rindas atrašana programmā Excel (5 veidi)
5. metode: konkrētas virknes apakšvirknes pārbaude datu diapazonā
Pieņemsim, ka vēlaties uzrakstīt Pass vai Nespēja sarakstīties pie skolēnu vārdiem atkarībā no Rezultātu sleja kur Pass vai Fail ir ierakstīta iekavās. Lai atrastu šo apakšrindu Rezultātu sleja un ierakstiet to Izturējis vai neizturējis aile izmantot šo metodi.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> 0 Then cell.Offset(0, 1).value = "Passed" Else cell.Offset(0, 1).value = "F failed" End If Next cell End Sub
Šajā gadījumā šūnu diapazons ir C5:C10 kas ir Rezultātu sleja
InStr(cell.value, "Pass")> 0 ir nosacījums, kad skaitlis ir lielāks par nulli (ja šūnā ir "Pass" ), tad nākamā rinda turpināsies un blakus esošajā šūnā parādīs rezultātu kā Nodots .
Ja nosacījums kļūst nepatiess, tas nozīmē, ka šūnā nav nevienas "Pass" tad rinda zem Citādi tiks izpildīts un sniegs izejas vērtību blakus esošajā šūnā kā Neveiksmīgs .
Šī cilpa turpināsies katrai šūnai.
➤Press F5
Rezultāts :
Pēc tam jūs iegūsiet šādus izvades rezultātus. Izturēt vai neizturēt sleja.
6. metode: noteiktas virknes apakšvirknes pārbaude un datu iegūšana
Es parādīšu ceļu, kā atrast skolēnus ar nosaukumu Michael in the Skolēna vārda sleja un iegūt atbilstošos datus, izmantojot VBA šajā metodē.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & i), "Michael")> 0 Then icount = icount + 1 Range("E" & icount & ":G" & icount) = Range("B" & i & ":D" & i).vērtība End If Next i End Sub
Šeit esmu izmantojis B100 kā Aktīvās lapas diapazons bet varat izmantot jebkuru diapazonu atbilstoši savām vajadzībām.
InStr(1, Range("B" & amp; i), "Michael")> 0
ir nosacījums, lai pārbaudītu, vai ailē esošā šūna B satur Michael
Range("E" & amp; icount & amp; ":G" & amp; icount)
ir diapazons, kurā vēlaties ievadīt izejas datus, un Range("B" & amp; i & amp; & amp; ":D" & amp; i).value
sniegs vērtības no kolonnām B uz D .
➤Press F5
Rezultāts :
Pēc tam iegūsiet šādus iegūtos datus par skolēniem, kuriem ir vārds. Michael .
7. metode: vārda apakšvirknes meklēšana
Ja vēlaties atrast apakšvirzienu kā vārdu, izmantojiet šo metodi.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Sub Stringforword() Dim j As Integer j = InStr("Lūk, kas es esmu", "ir") If j = 0 Then MsgBox "Vārds nav atrasts" Else MsgBox "Vārds atrasts pozīcijā: " & amp; j End If End If End Sub
Tiks pārbaudīts, vai virkne satur ir . un pēc tam tiks norādīta tā atrašanās vieta
➤Press F5
Rezultāts :
Pēc tam tiks parādīts šāds ziņojuma lodziņš, kurā parādīts. vārds atrasts stāvoklī: 6 (pozīcija ir ).
Šo kodu var pārbaudīt, ja vārdu virknē nav vārda.
➤ Ievadiet šādu kodu
Sub Stringforword() Dim j As Integer j = InStr("Lūk, kas es esmu", "esmu") If j = 0 Then MsgBox "Vārds nav atrasts" Else MsgBox "Vārds atrasts pozīcijā: " & amp; j End If End Sub End Sub
➤Press F5
Rezultāts :
Pēc tam tiks parādīts šāds ziņojuma lodziņš, kurā parādīts. vārds nav atrasts .
8. metode: Izmantojot Instr un LEFT funkciju
Šeit es paskaidrošu, kā atrast apakšvirziena pozīciju virknē un iegūt tekstus pirms šīs apakšvirziena, izmantojot VBA un funkcija LEFT .
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Sub InstrandLeft() Dim txt As String Dim j As Long txt = "Lūk, kas es esmu" j = InStr(txt, "ir") MsgBox Left(txt, j - 1) End Sub
j = InStr(txt, "ir")
ir apakšvirknes pozīcija ir un pa kreisi(txt, j - 1)
tiks iegūtas apakšvirknes pirms ir . .
➤Press F5
Rezultāts :
Pēc tam tiks parādīts šāds ziņojuma lodziņš, kurā parādīts Šeit (apakšvirkne pirms ir . ).
9. metode: noteiktas virknes apakšvirknes pasvītrojums virknē
Jūs varat treknrakstā ierakstīt pakāpes pirms iekavām Rezultātu sleja izmantojot šo metodi.
Solis-01 :
➤ Sekot Solis-01 no 1. metode
Sub Boldingsubstring() Dim Cell As Range Dim txt As Integer For Each Cell In Selection txtCount = Len(Cell) txt = InStr(1, Cell, "(") Cell.Characters(1, txt - 1).Font.Bold = True Next Cell End Sub
txt = InStr(1, šūna, "(")
atgriezīs pirmā iekavja pozīciju un Cell.Characters(1, txt - 1).Font.Bold
padarīs apakšrindu pirms pirmā iekavja Bold .
Solis-02 :
➤Izvēlieties Rezultātu sleja
➤Iet uz Izstrādātājs Cilne>> Makroprocesori Iespēja
Tad a Makro tiks parādīts vednis.
➤Izvēlēties treknraksts (VBA koda nosaukums) un pēc tam Palaist .
Rezultāts :
Pēc tam pakāpes Rezultāts Kolonna būs treknrakstā.
Prakses sadaļa
Prakses veikšanai mēs esam nodrošinājuši Prakse sadaļu, piemēram, zemāk lapā ar nosaukumu Prakse . Lūdzu, dariet to pats.
Secinājums
Šajā rakstā es mēģināju aprakstīt vienkāršākos veidus, kā atrast apakšvirzienu, izmantojot VBA Ceru, ka tas jums būs noderīgs. Ja jums ir kādi ieteikumi vai jautājumi, nekautrējieties dalīties ar mums.