VBA tikrinimas, ar eilutė apima kitą eilutę "Excel" programoje (6 metodai)

  • Pasidalinti
Hugh West

Įgyvendinti VBA yra veiksmingiausias, greičiausias ir saugiausias būdas atlikti bet kokią operaciją "Excel" programoje. Šiame straipsnyje parodysime, kaip "Excel" programoje patikrinti, ar eilutėje yra kita eilutė, naudojant VBA .

Atsisiųsti praktikos šabloną

Nemokamą praktinį "Excel" šabloną galite atsisiųsti iš čia.

VBA tikrinimas, ar eilutėje yra reikšmė.xlsm

6 VBA metodai, skirti patikrinti, ar eilutėje yra kita eilutė programoje "Excel

Toliau šiame skyriuje rasite 6 veiksmingus būdus, kaip įgyvendinti VBA patikrinti, ar eilutėje yra kita eilutė, ar ne.

1. VBA tikrinimas, ar eilutėje yra pojuostė

Toliau pateikiamas pavyzdys funkcija InStr rasti, ar eilutėje yra "Excel" poaibis.

Žingsniai:

  • Paspauskite Alt + F11 klaviatūroje arba eikite į skirtuką Programuotojas -> "Visual Basic atidaryti "Visual Basic" redaktorius .

  • Iššokančiame kodo lange meniu juostoje spustelėkite Insert -> Modulis .

  • Kodo lange nukopijuokite ir įklijuokite šį kodą.
 Public Sub ContainSub() If InStr("Filmas: Geležinis žmogus, Betmenas, Supermenas, Žmogus-voras, Žmogus-voras, Toras", "Hulk")> 0 Then MsgBox "Filmas rastas" Else MsgBox "Filmas nerastas" End If End Sub 

Dabar jūsų kodas paruoštas paleisti.

  • Paleisti makrokomandą.

Jei jūsų eilutėje yra posekmė tada bus gautas rastas atitikmuo, priešingu atveju bus grąžinta, kad atitikmuo nerastas.

Mūsų pavyzdyje norėjome sužinoti, ar mūsų pirminė eilutė " Filmas: Geležinis žmogus, Betmenas, Supermenas, Žmogus-voras, Toras " yra žodis " Hulk " arba ne. Kadangi taip nėra, gauname Filmas nerastas rezultatas.

2. VBA tikrinimas, ar eilutėje yra skaičius

Galite ieškoti, ar eilutėse yra skaičių, ar ne, naudodami VBA kodas.

Pažvelkite į toliau pateiktą pavyzdį, kuriame rasime, kuriose eilutėse yra skaičių su filmų pavadinimais.

Žingsniai, skirti patikrinti, ar eilutėse yra skaičių su VBA pateikiami toliau.

Žingsniai:

  • Kaip ir anksčiau, atidarykite "Visual Basic" redaktorius Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
  • Kodo lange nukopijuokite ir įklijuokite šį kodą.
 Funkcija SearchNumbers(oRng As Range) As Boolean Dim bSearchNumbers As Boolean, i As Long bSearchNumbers = False For i = 1 To Len(oRng.Text) If IsNumeric(Mid(oRng.Text, i, 1)) Then bSearchNumbers = True Exit For End If Next SearchNumbers = bSearchNumbers End Function 
  • Tai nėra papildoma procedūra, skirta VBA paleisti programą, tai yra sukurti Vartotojo apibrėžta funkcija (UDF), kurį iškviesime savo darbalapyje, kad įvykdytume užduotį. Taigi, parašę kodą, užuot spustelėję Paleisti mygtuką, spustelėkite Išsaugoti meniu juostoje, kad išsaugotumėte makrokomandos failą.
  • Dabar grįžkite į dominančią darbo lentelę ir įrašykite ką tik sukurtą vartotojo apibrėžtą funkciją į VBA kodas ( SearchNumber , pirmoje kodo eilutėje) ir funkcijos skliausteliuose įveskite eilutės langelio, kuriame yra pradiniai skaičiai, nuorodos numerį (pvz. Ląstelė B5 ).
  • Paspauskite Įveskite .

Gausite loginę reikšmę ( TRUE arba Klaidingas ), jei ląstelėje esančioje eilutėje yra skaičių, gausite TRUE , priešingu atveju FALSE .

  • Vilkite ląstelę žemyn Užpildymo rankena taikyti formulę likusioms ląstelėms, kad patikrintumėte, kurioje eilutėje yra skaičių, o kurioje ne.

3. VBA išgauti skaičius iš eilutės

Pirmiau pateiktame skyriuje sužinojome, kaip patikrinti, ar eilutėje yra skaičių, ar ne. O šiame skyriuje sužinosime, kaip tuos skaičius išskirti ir perkelti į kitą ląstelę, remdamiesi toliau pateiktu pavyzdžiu.

Žingsniai, skirti patikrinti, ar eilutėse yra skaičių, ir išgauti juos naudojant VBA pateikiami toliau.

Žingsniai:

  • Atviras "Visual Basic" redaktorius Kūrėjas skirtukas ir Įdėkite a Naudotojo forma šį kartą iš kodo lango skirtuko Insert.
  • Iš pasirodė Įrankių dėžutė , vilkimas ir nuleidimas CommandButton į Naudotojo forma .

  • Dukart spustelėkite ant mygtuko, nukopijuokite ir įklijuokite šį kodą.
 Private Sub CommandButton1_Click() Worksheets("Number").Range("C2:C15").ClearContents checkNumber (Worksheets("Number").Range("B2:B15")) End Sub Sub checkNumber(objRange As Range) Dim myAccessary As Variant Dim i As Long Dim iRow As Long iRow = 2 For Each myAccessary In objRange For i = 1 To Len(myAccessary.Value) If IsNumeric(Mid(myAccessary.Value, i,1)) Then If Trim(objRange.Cells(objRange.Row - 1, 2)) "" Then objRange.Cells(iRow - 1, 2) = _ objRange.Cells(iRow - 1, 2) & Mid(myAccessary.Text, i, 1) Else objRange.Cells(iRow - 1, 2) = Mid(myAccessary.Text, i, 1) End If End If Next iRow = iRow + 1Kitas myAccessary Pabaiga Sub 
  • Paleisti kodą, ir jis nukreips jus į dominančią darbalapį.
  • Spustelėkite komandų mygtuką ir gausite išvestą skaičių iš eilučių.

4. VBA tikrinimas, ar eilutėje yra tam tikra raidė

Šis metodas beveik panašus į eilutės poaibio tikrinimo metodą.

Žemiau pateikiamas InStr funkcija, skirta nustatyti, ar eilutėje yra tam tikra raidė "Excel" programoje.

Žingsniai:

  • Kaip ir anksčiau, atidarykite "Visual Basic" redaktorius Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
  • Kodo lange nukopijuokite ir įklijuokite šį kodą.
 Public Sub ContainChar() If InStr("Filmas: Geležinis žmogus, Betmenas, Supermenas, Žmogus-voras, Voras, Toras", "Z")> 0 Then MsgBox "Raštas rastas" Else MsgBox "Raštas nerastas" End If End Sub 

Dabar jūsų kodas paruoštas paleisti.

  • Paleisti programą. Jei jūsų eilutėje yra raidė tada bus gautas rastas atitikmuo, priešingu atveju bus grąžinta, kad atitikmuo nerastas.

Mūsų pavyzdyje norėjome sužinoti, ar mūsų pirminė eilutė " Filmas: Geležinis žmogus, Betmenas, Supermenas, Žmogus-voras, Toras " yra raidė " Z " arba ne. Kadangi taip nėra, gauname Laiškas nerastas rezultatas.

5. VBA tikrinimas, ar eilutės diapazonas apima kitą eilutę

Išmokome, kaip patikrinti, ar tam tikroje eilutėje yra kita eilutė, ar ne. Tačiau šiame skyriuje mokysimės, kaip patikrinti, ar eilutės intervale yra poaibis, ar ne, naudodami toliau pateiktą duomenų rinkinį kaip pavyzdį.

Žingsniai:

  • Atviras "Visual Basic" redaktorius Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
  • Kodo lange nukopijuokite ir įklijuokite šį kodą.
 Public Sub ContainsSub() If InStr(ActiveSheet.Select, "Hulk")> 0 Then MsgBox "Movie found" Else MsgBox "Movie not found" End If End Sub 

Dabar jūsų kodas paruoštas paleisti.

  • Paleisti kodą.

Jei jūsų diapazonas eilutėje yra posekmė tada bus gautas rastas atitikmuo, priešingu atveju bus grąžinta, kad atitikmuo nerastas.

6. VBA eilutėms išgauti iš eilutės

Šiame skyriuje pamatysime, kaip patikrinti, ar eilutėse yra tam tikrų posistemių, ir jas išskirti į kitą langelį.

Išskirsime informaciją apie pavadinimus, prasidedančius " Chrisas " iš šio duomenų rinkinio.

Žingsniai :

  • Atviras "Visual Basic" redaktorius Kūrėjas skirtukas ir Įdėkite a Modulis kodo lange.
  • Kodo lange nukopijuokite ir įklijuokite šį kodą.
 Sub SearchSub() Dim lastrow As Long Dim i As Integer, count As Integer lastrow = ActiveSheet.Range("A30000").End(xlUp).Row For i = 1 To lastrow If InStr(1, LCase(Range("C" & i)), "Chris") 0 Then count = count + 1 Range("F" & count & ":H" & count) = Range("B" & i & ":D" & i).Value End If Next i End Sub 

Dabar jūsų kodas paruoštas paleisti.

  • Paleisti kodą.

Tik pavadinimai, prasidedantys " Chrisas " bus saugomi iš anksto nustatytose ląstelėse.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.