Turinys
VBA galite naudoti skirtingus metodus paskutinei eilutei rasti. Šiame straipsnyje paaiškinsiu skirtingus VBA metodus, kaip rasti paskutinę eilutę "Excel" programoje.
Kad šis paaiškinimas būtų akivaizdus, naudosiu pavyzdinį duomenų rinkinį. Duomenų rinkinyje yra 4 stulpeliai, kuriuose pateikiama informacija apie pardavimus. Šie stulpeliai yra Pardavėjas, regionas, produktas, ir Kaina .
Atsisiųsti į praktiką
VBA Rasti paskutinę eilutę.xlsmVBA paskutinės eilutės paieškos būdai programoje "Excel
1. Naudojant "SpecialCells" rasti paskutinę eilutę
Galite naudoti SpecialCells metodą, kad rastumėte paskutinę eilutę naudodami VBA .
Pirmiausia atidarykite Kūrėjas skirtukas>> tada pasirinkite "Visual Basic
Naujas langas "Microsoft Visual Basic for Applications pasirodys.
Dabar iš Įdėkite >> pasirinkti Modulis
A Modulis bus atidarytas.
Tada įrašykite šį kodą į Modulis .
Sub LastRow_SpecialCells() Dim LastRow As Long LastRow = Range("A:A").SpecialCells(xlCellTypeLastCell).Row MsgBox LastRow End Sub
Čia sukūriau subprocedūrą, pavadintą LastRow_SpecialCells , kur a Ilgas kintamojo tipas LastRow paskelbta.
Tada apibrėžkite kintamąjį naudodami Range.SpecialCells metodą. Čia naudojau stulpelį A ( A:A ) kaip diapazonas. xlCellTypeLastCell kaip tipo parametras SpecialCells bus grąžinta paskutinė diapazono ląstelė (šiuo atveju iš stulpelio A ).
Rezultatui parodyti naudojau pranešimų langelį.
Po to, Išsaugoti kodą ir grįžkite į darbalapį.
Vėl atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
Tada a dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite LastRow_SpecialCells taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, bus rodomas pranešimo langas, kuriame bus nurodytas paskutinės eilutės numeris.
2. Naudojant Rows.Count ne tuščių langelių atveju
Galite naudoti Rows.Count metodą, kad rastumėte paskutinę eilutę naudodami VBA .
Dabar atidarykite Kūrėjas skirtukas>> tada pasirinkite "Visual Basic
Naujas langas "Microsoft Visual Basic for Applications pasirodys.
Dabar iš Įdėkite >> pasirinkti Modulis
A Modulis bus atidarytas.
Tada įrašykite šį kodą į Modulis .
Sub LastRow_NonEmpty() Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row MsgBox LastRow End Sub
Čia sukūriau paprocedūrą LastRow_NonEmpty, kurioje Ilgas kintamojo tipas LastRow paskelbta.
Dabar, CELLS(Rows.Count, 1) suskaičiuos, kiek eilučių yra pirmajame stulpelyje. Tada naudokite End(xlUp).Row dabar tai padės rasti paskutinę naudotą eilutę "Excel" diapazone.
Galiausiai rezultatams parodyti naudojau pranešimų langelį.
Tada, Išsaugoti kodą ir grįžkite į darbalapį.
Čia atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
Dabar, a dialogo langas pasirodys.
Tada iš Makro pavadinimas pasirinkite LastRow_NonEmpty taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, bus rodomas pranešimo langas, kuriame bus nurodytas paskutinės eilutės numeris.
3. Naudojant Rows.Count bet kuriam pasirinktam stulpeliui
Naudodami bet kurį pasirinktą stulpelį VBA, rasite paskutinę eilutę.
Pirmiausia atidarykite Kūrėjas skirtukas>> tada pasirinkite "Visual Basic
Naujas langas "Microsoft Visual Basic for Applications pasirodys.
Dabar iš Įdėkite >> pasirinkti Modulis
A Modulis bus atidarytas.
Tada įrašykite šį kodą į Modulis .
Sub LastRow_AnyColumn() Dim LastRow As Long LastRow = Range("B" & amp; Rows.Count).End(xlUp).Row MsgBox LastRow End Sub
Čia sukūriau subprocedūrą LastRow_AnyColumn, kurioje Ilgas kintamojo tipas LastRow paskelbta.
Tada Diapazonas atsižvelgiant į stulpelį B kaip parametrą ir Rows.Count , bus suskaičiuota, kiek eilučių yra tam tikrame stulpelyje B . Kitas, naudotas End(xlup). eilutė kuri suras paskutinę naudotą eilutę "Excel" diapazone.
Galiausiai, rezultatui parodyti naudojau pranešimų langelį.
Kitas, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
Čia a dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite LastRow_AnyColumn taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, bus rodomas pranešimo langas, kuriame bus nurodytas paskutinės eilutės numeris.
Panašūs skaitiniai:
- VBA paieška "Excel" stulpelyje (7 būdai)
- Rasti ir pakeisti naudojant VBA (11 būdų)
- Tikslaus atitikmens paieška naudojant VBA programoje "Excel" (5 būdai)
- Kaip rasti eilutę su VBA programa "Excel" (8 pavyzdžiai)
4. Naudojant UsedRange rasti paskutinę eilutę
Galite naudoti NaudotasRange darbalapio savybė rasti paskutinę eilutę naudojant VBA .
Dabar atidarykite Kūrėjas skirtukas>> tada pasirinkite "Visual Basic
Tada bus atidarytas naujas langas "Microsoft Visual Basic for Applications pasirodys.
Dabar iš Įdėkite >> pasirinkti Modulis
A Modulis bus atidarytas.
Tada įrašykite šį kodą į Modulis .
Sub LastRow_UsedRange() Dim LastRow As Long LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row MsgBox "Paskutinė eilutė: " & amp; LastRow End Sub
Čia sukūriau subprocedūrą LastRow_UsedRange, kurioje Ilgas kintamojo tipas LastRow paskelbta.
Tada apibrėžkite kintamąjį naudodami ActiveSheet.UsedRange.Rows taip pat pateikiamas metodas ActiveSheet.UsedRange.Rows.Count kaip parametras ActiveSheet.UsedRange.Rows , bus grąžinta paskutinė eilutė.
Rezultatui parodyti naudojau pranešimų langelį.
Dabar, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
Toliau, a dialogo langas pasirodys.
Tada iš Makro pavadinimas pasirinkite LastRow_UsedRange taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, bus rodomas pranešimo langas, kuriame bus nurodytas paskutinės eilutės numeris.
5. Naudojant Range.Find rasti paskutinę eilutę
Galite naudoti Range.Find metodą, kad rastumėte paskutinę eilutę naudodami VBA .
Dabar atidarykite Kūrėjas skirtukas>> tada pasirinkite "Visual Basic
Čia atveriamas naujas langas "Microsoft Visual Basic for Applications pasirodys.
Dabar iš Įdėkite >> pasirinkti Modulis
A Modulis bus atidarytas.
Tada įrašykite šį kodą į Modulis .
Sub Range_Find_Method() Dim LastRow As Long On Error Resume Next LastRow = Cells.Find(What:="*", _ After:=Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 MsgBox "Last Row: " & amp; LastRow End Sub
Čia sukūriau subprocedūrą, pavadintą Range_Find_Method, kurioje Ilgas kintamojo tipas LastRow paskelbta.
Tada apibrėžkite kintamąjį naudodami Cells.Find metodą. Čia deklaruoti 7 parametrai. Ką parametras, kurį naudojau ("*"), bus rastas pirmas ne tuščias langelis. A1 kaip diapazonas Po parametras pradėti. LookAt pateiktas parametras xlDalis norėdami peržiūrėti bet kurią ląstelėje esančią teksto dalį.
LookIn:=xlFormulas parametras ieškos formulių, jei jų yra. SearchOrder:=xlByRows parametras judės iš dešinės į kairę ir taip pat eis per kiekvieną eilutę, kol ras ne tuščią langelį.
MatchCase:=False parametras nurodys Rasti neatsižvelgti į didžiąsias ar mažąsias raides. Radus ne tuščiąją raidę, jis sustoja ir grąžina eilutės numerį.
Rezultatui parodyti naudojau pranešimų langelį.
Dabar, Išsaugoti kodą ir grįžkite į darbalapį.
Čia atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
Dabar, a dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Range_Find_Method taip pat pasirinkite darbalapį Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, bus rodomas pranešimo langas, kuriame bus nurodytas paskutinės eilutės numeris.
Išvada
Šiame straipsnyje paaiškinau 5 būdus, kaip VBA rasti paskutinę eilutę "Excel" programoje. Paskutinei eilutei rasti galite naudoti bet kurį iš metodų. Jei turite neaiškumų ar klausimų dėl šių metodų, galite komentuoti toliau.