Hoe cellen in excel samen te voegen met behulp van vba-code
In VBA is er een “MERGE”-methode die u kunt gebruiken om een celbereik of zelfs meerdere bereiken samen te voegen tot één celbereik. Deze methode heeft een ‘Across’-argument dat optioneel is. Als u TRUE opgeeft, wordt elke rij in het bereik afzonderlijk samengevoegd, en als u FALSE opgeeft, wordt het hele bereik samengevoegd tot één rij.
Stappen om VBA te gebruiken om cellen samen te voegen:
- Eerst moet u het cellenbereik definiëren dat u wilt samenvoegen.
- Typ daarna een punt (.) om de lijst met eigenschappen en methoden te krijgen en selecteer “Samenvoegen” uit die lijst, of u kunt het rechtstreeks typen.
- Daarna moet u het argument “Across” instellen op TRUE of FALSE.
- Voer aan het einde deze code uit om het bereik samen te voegen.
Hier is de code.
Range("A1:A2").Merge False
En als u rijen over het hele bereik wilt samenvoegen, kunt u TRUE gebruiken voor het argument across.
Selection.Merge Across:=True
In de bovenstaande code moet je selecteren als bereik, samenvoegmethode en over als waar. En het heeft alle rijen in het geselecteerde bereik samengevoegd.
Stel dat u het celbereik van een ander werkblad wilt samenvoegen. U hoeft dit niet eerst in te schakelen. U kunt eenvoudigweg eerst naar de spreadsheet verwijzen en vervolgens de samenvoegmethoden gebruiken met de verwerping die u wilt samenvoegen.
Worksheets("Sheet1").Range("A1:A2").Merge
Op dezelfde manier kunt u ook naar een werkmap verwijzen door de naam van de werkmap op te geven.
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge
Voeg een bereik samen en lijn de celinhoud uit
Wanneer u nu twee of meer cellen samenvoegt, moet u de inhoud in de cel uitlijnen. Kijk naar de onderstaande momentopname waar u de cellen A1 en A2 hebt samengevoegd en de waarde in de cellen onderaan is uitgelijnd. Om dit probleem op te lossen, kunt u de uitlijningseigenschap gebruiken en de celinhoud in het midden en midden uitlijnen, zodat u deze gemakkelijk kunt lezen.
With Range("A1:A2") .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With
Combineer tekst en voeg vervolgens samen
Laten we het hebben over een realistisch scenario. U hebt tekst in een celbereik en u moet deze cellen samenvoegen, maar u wilt de inhoud die u heeft niet kwijtraken. Welnu, je kunt met elk een codelus over het hele bereik schrijven en tekst combineren en deze aan het einde aan het samengevoegde bereik toevoegen.
- In het eerste deel heb je variabelen die je kunt gebruiken om bereikwaarden op te slaan en zichzelf in te stellen.
- In het tweede deel heb je een LOOP om de waarden van elke cel te combineren om daarmee een nieuwe string te creëren.
- In het derde deel voegt u het bereik samen, voegt u de gecombineerde tekenreeks toe, past u woordomloop toe en lijnt u de celinhoud uit.
Hier is de volledige code.
Sub vba_merge_with_values() Dim val As String Dim rng As Range Set rng = Range("A1:A10") For Each Cell In rng val = val & " " & Cell.Value Next Cell With rng .Merge .Value = Trim(val) .WrapText = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub