Hoe u het gesorteerde bereik automatisch kunt bijwerken via VBA in uw Excel-werkblad

De aangepaste sortering in Excel is een erg handige functie. In dit artikel zullen we het hebben over het automatisch bijwerken van aangepaste sortering in een bereik met behulp van de Excel VBA.

Wanneer u de aangepaste sortering gebruikt, zult u merken dat dit een geweldige functie is in Excel. Als u deze functie echter vaak gebruikt, is er mogelijk ook een probleem. U sorteert in een reeks met bepaalde gegevens en informatie. Wanneer u extra gegevens en informatie aan het bereik toevoegt, verandert de volgorde in het bereik niet automatisch. De onderstaande afbeelding toont een voorbeeld van een dergelijke aandoening.Voorbeeld

Wanneer u een nieuwe gegevensset aan het bereik toevoegt, wordt de rangschikking niet automatisch gewijzigd. Als u dit grotere bereik met nieuwe gegevensset toch volgens dezelfde criteria wilt sorteren, moet u het proces van aangepaste sortering opnieuw uitvoeren. U kunt zien dat dit erg vervelend is, vooral wanneer u de gegevens en informatie in het werkblad voortdurend moet bijwerken. Elke keer dat u nieuwe informatie aan het bereik toevoegt, moet u opnieuw sorteren. Om dit probleem op te lossen en uw taak snel af te ronden, kunt u dit artikel verder lezen.

Macro opnemen

Wanneer de criteria van aangepaste sortering erg complex zijn, zult u het moeilijk vinden om de VBA-codes rechtstreeks te schrijven. U kunt nu dus eerst een macro opnemen. En de codes in deze macro kunnen in andere macro's worden gebruikt. Het proces van het opnemen van codes is heel eenvoudig.

  1. Voordat u een macro opneemt, moet u het tabblad van VBA in het lint toevoegen. Klik hier met de rechtermuisknop op een van de tabbladen in het lint.
  2. En kies vervolgens 'het lint aanpassen' in het menu.Pas het lint aan
  3. Vink nu in het venster "Excel-opties" de optie "Ontwikkelaar" aan in de lijst met "Hoofdtabbladen".Ontwikkelaar
  4. Klik daarna op "OK" in het venster. Daarom heb je het tabblad in het lint toegevoegd.
  5. Nu kom je terug op het werkblad. Klik op het tabblad "Developer" dat u heeft toegevoegd.
  6. En klik vervolgens op de knop "Macro opnemen" in de werkbalk. Het venster "Macro opnemen" zal dus verschijnen.Macro opnemen

Aan de andere kant kun je ook op het kleine knopje onder aan het werkblad klikken om de bovenstaande 6 stappen te vervangen.Macro opnemen

  1. Voer nu in het venster "Macro opnemen" de naam in het eerste tekstvak in. Wijs indien nodig een sneltoets toe. En voeg vervolgens de beschrijving toe volgens uw behoefte.Macro instellen
  2. Klik vervolgens op "OK". De macro begint dus elke bewerking die u uitvoert op te nemen.
  3. Selecteer het bereik dat u in het werkblad wilt sorteren.
  4. Klik op het tabblad "Home".
  5. En klik vervolgens op de knop "Sorteren en filteren" in het lint.
  6. Kies in de vervolgkeuzelijst de optie "Aangepast sorteren".Aangepast sorteren
  7. Stel in het venster “Sorteren” de criteria in volgens uw behoefte. Alle acties worden in de macro opgenomen.Sorteer

Voer geen extra stappen uit als u een macro opneemt. Anders worden die stappen ook opgenomen. En dit zal problemen veroorzaken in het volgende deel.

  1. Nadat u de instelling in het “Sort” -venster heeft voltooid, klikt u op “OK” om de instellingen op te slaan.
  2. Klik nu weer op de tab “Developer” in het lint.
  3. En klik vervolgens op de knop "Opname stoppen". Als het werkblad in staat is macro's op te nemen, verandert de knop in "Opname stoppen".Opname stoppen

U kunt ook op de knop onder aan het werkblad klikken om de opname van de macro te stoppen. U bent dus klaar met opnemen. Alle sorteercriteria zijn opgeslagen in Macro 1.

Gebruik Excel VBA-macro's

In dit deel laten we u zien hoe u VBA-macro's gebruikt om aangepaste sortering in uw werkblad bij te werken. En u zult in dit gedeelte ook de opgenomen macro's gebruiken.

  1. Klik op het tabblad "Ontwikkelaar" in het lint.
  2. En klik vervolgens op de knop "Visual Basic" in de werkbalk. In plaats daarvan kunt u ook op de knop "Alt + F11" op het toetsenbord drukken om de 2 stappen te vervangen.Visual Basic
  3. Dubbelklik in de Visual Basic-editor op het blad in het gebied "VBAProject". In dit blad moet u de aangepaste sortering bijwerken. En in uw eigenlijke bestand moet u dubbelklikken op het overeenkomstige blad.
  4. Voer nu de volgende codes in het gebied in.
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
  1. En voer vervolgens de volgende codes in tussen de bovenstaande twee VBA-zinnen.
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then

End If

Hier wordt het bereik geschat. Er zijn 12 maanden voor het verkoopvolume en samen met de eerste rij van de koptekst voeren we het bereik "A1: C13" in. U kunt ook het bereik in de codes invoeren volgens uw eigenlijke werkblad.

  1. Open in deze stap module 1 in de editor. De codes in deze module zijn het proces van aangepaste sortering dat u eerder hebt gemaakt. U kunt zien dat het gebruik van de functie voor het opnemen van macro's u veel tijd kan besparen.
  2. Kopieer nu het hoofdgedeelte in deze module.Kopiëren
  3. Dubbelklik vervolgens op het doelblad in het onderdeel "VBAProject".
  4. Plak daarna de codes in de IF-END IF-codes.
  5. En pas vervolgens het bereik in de codes aan volgens uw behoefte. De opgenomen macro is een beetje ingewikkeld en overbodig. U kunt het ook aanpassen aan uw behoefte. Daarom zullen de volledige VBA-codes er als volgt uitzien:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.ScreenUpdating = False
  If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
    With ActiveWorkbook.Worksheets("Sheet1").Sort
      .SortFields.Clear
      .SortFields.Add Key:=Range("B2:B13"), _
         SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
      .SortFields.Add Key:=Range("C2:C13"), _
         SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    End With
 
    With ActiveWorkbook.Worksheets("Sheet1").Sort
      .SetRange Range("A1:C13")
      .Header = xlYes
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
    End With
  End If
End Sub

We voegen nog een WITH-END WITH toe aan de codes. Het zal dus duidelijker zijn dan het recordresultaat. Als u andere vereisten heeft, kunt u deze ook aanpassen aan uw werkelijke behoefte. U moet voorzichtig zijn bij het wijzigen van de codes. Anders krijg je een verkeerd resultaat in het werkblad.

  1. Nu heb je de VBA-codes in de editor voltooid. U kunt teruggaan naar het werkblad en het resultaat testen. Wanneer u de volgende maand en de bijbehorende nummers aan het bereik toevoegt, wordt de aangepaste sortering automatisch vernieuwd.Test

U hoeft de aangepaste sortering dus nooit handmatig bij te werken wanneer u nieuwe elementen aan het doelbereik toevoegt. Aan de andere kant moet u dit werkblad opslaan als een Excel-bestand met macro's. Anders gaan de codes verloren als u het als een gewoon bestand opslaat.

We zullen hulp bieden aan slachtoffers van corruptie in Excel

We weten allemaal dat Excel erg krachtig is en dat het u kan helpen uw werk snel en gemakkelijk af te ronden. Maar de Excel-applicatie is nog verre van perfect. Soms zal Excel om veel verschillende redenen corrupt raken. Zodra Excel corrupt is, kunt u uw taken niet voltooien met deze toepassing. Om beter te kunnen werken, moet u het zo snel mogelijk repareren.

Ons bedrijf is al jaren bezig met het herstelgebied, met name het herstel in Excel. Daarom kunt u voor hulp terecht bij onze technische staf. Met jarenlange ervaring kunnen we gemakkelijk achterhalen wat de oorzaak is van schade aan uw bestanden. En om u beter te helpen reparatie Excel xlsx-bestandsschadehebben we een tool van derden ontwikkeld. Deze tool is heel gemakkelijk te manipuleren en u hoeft zich geen zorgen te maken over het privacyprobleem.

Auteur Introductie:

Anna Ma is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie Word docx-fout en Outlook-reparatiesoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.