Hoe geneste vba with-instructie te gebruiken?

Belangrijkste punten

  • Gebruik de VBA With-instructie om de code te minimaliseren.
  • U kunt slechts één object tegelijk gebruiken als u de With-instructie gebruikt.

Wat is VBA met declaratie

VBA With is een instructie waarmee u een object één keer kunt opgeven en er vervolgens meerdere instructies voor kunt uitvoeren. In eenvoudige bewoordingen: gebruik de “WITH”-instructie om een object te specificeren, en daarna heb je in één keer toegang tot alle eigenschappen en methoden. Het begint met “Met” en eindigt met “Einde met”.

Syntaxis van VBA met instructie

Hier is de syntaxis die u moet gebruiken om de With-instructie in VBA te gebruiken:

 With [OBJECT] [Statement] End With
vba-syntaxis-met-instructie
  1. With : Dit is het startsleutelwoord van de instructie die VBA vertelt dat u het genoemde object specificeert.
  2. Object : Hier moet u het object opgeven dat u wilt gebruiken.
  3. Verklaring : een of meer instructies die u met het opgegeven object wilt uitvoeren.
  4. Eindig met : Dit is het eindsleutelwoord van de verklaring.

Voorbeeld om VBA met verklaring te begrijpen

Laten we een voorbeeld nemen om de diepgaande verklaring te begrijpen. Stel dat u de kleur, de grootte en de naam van cel A1 wilt wijzigen. Om deze drie dingen te doen, hebt u toegang nodig tot drie verschillende VBA-lettertype- eigenschappen en de code zou zijn:

 Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"

Maar hier gaan we de With-instructie gebruiken in plaats van de bovenstaande code. Om de VBA With-instructie te gebruiken, kunt u de volgende stappen volgen:

  1. Typ eerst het toetsenbord “Met”.
  2. Gebruik daarna het VBA-bereik om cel A1 op te geven met behulp van het lettertypeobject om het lettertypeobject op te geven.
    use-the-vba-range
  3. Vervolgens moet u de code invoeren voor de drie eigenschappen en de waarden die u wilt toepassen.
    code-for-all-three-properties
  4. Gebruik aan het einde het trefwoord ‘Einde met’ om de verklaring af te sluiten.
    end-with-to-end-the-statement

Hier is de code die je zojuist hebt geschreven.

 Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub

Laten we nu naar beide codes kijken en proberen te begrijpen wat het verschil is dat we hebben met de instructie “With”.

kijk-naar-de-twee-codes

In de eerste code hebt u het font-object drie keer gebruikt en vervolgens de eigenschap gebruikt waartoe u toegang wilt krijgen en waar u wijzigingen in wilt aanbrengen.

Maar in de tweede code gebruikte je de With-instructie en specificeerde je onmiddellijk het font-object. En dan drie regels code in de instructie “With” om toegang te krijgen tot de drie eigenschappen.

Wanneer u de instructie “With” gebruikt en een object opgeeft, vertelt het VBA dat alle instructies die u hebt geschreven, met het genoemde object moeten worden uitgevoerd. Dit geeft je niet alleen gestructureerde code, maar versnelt ook de uitvoering van een macro en zorgt voor meer efficiëntie.

Genest met verklaring

Ik heb je in het begin verteld dat je slechts één object kunt opgeven om de With-instructie te gebruiken. Maar er is een manier om er meer dan één of zelfs meerdere items mee te gebruiken. Dit gebruikt VBA LOOPS en we gaan FOR EACH LOOP gebruiken om door meerdere objecten te lopen en de “With” te gebruiken.

Laat me je een voorbeeld geven; u moet alle werkbladen doorlopen en de volgende zaken op alle cellen in elk werkblad toepassen.

  • Lettergrootte: 16
  • Lettertype: Verdena

En in de werkmap hebt u vijf werkbladen, zoals in het volgende voorbeeld:

genest-met-verklaring

Gebruik de volgende stappen om een geneste ‘With’-instructie te schrijven.

  1. Eerst moet u een variabele declareren om een werkbladobject te kunnen gebruiken.
    steps-to-write-nested
  2. Daarna moet je, zoals ik al zei, For Each Loop gebruiken. U moet dus een code schrijven met de lus die door alle werkbladen kan lopen .
    write-code-with-the-loop
  3. Voer nu de with-instructie in die de lettertype- instelling kan toepassen die we hierboven hebben besproken. Om naar alle cellen in het werkblad te verwijzen , kunt u “Cellen” gebruiken terwijl u het onderwerp opgeeft.
    use-cells-while-specifing-the-object

Hier is de volledige code die u zojuist hebt geschreven.

 Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *