Ändra storlek på intervall med VBA
Denna handledning visar hur du använder Ändra storlek på egendom av Områdeobjekt att ändra för att returnera ett nytt intervall från det ursprungliga intervallobjektet.
Syntax
Syntax för egenskapen Resize är:
1 | Område ("A1"). Ändra storlek (RowSize, ColumnSize) |
Där Range ("A1") är ditt startområde.
RowSize och ColumnSize måste vara större än noll. Varje ingång är valfri (t.ex. kan du utelämna RowSize för att bara ändra antalet kolumner, eller vice versa).
Ändra storlek på antal rader och kolumner
Följande exempel expanderar intervallet med en cell A1 till intervall A1: D10 genom att öka räkningen till 10 och kolumnerna till 5.
1 | Område ("A1"). Ändra storlek (10, 5). Välj |
Eller, mer vanligt tilldelar du storleksintervallet till en variabel:
12 | 'Ändra storlek på intervallet till önskad storlek och tilldela en variabelStäll in newRng = ActiveSheet.Range ("A1"). Ändra storlek (10, 5) |
Endast ändra storlek på antal rader
Följande exempel ändrar endast antalet rader:
12 | 'Ändra endast radstorlek, nytt intervall kommer att vara $ A $ 1: $ A $ 10Ange newRng = rng.Resize (10) |
Endast ändra storlek på kolumner
Följande exempel ändrar endast antalet kolumner:
12 | 'Ändra endast kolumnstorlek, nytt intervall blir $ A $ 1: $ E $ 1Ange newRng = rng.Resize (, 5) |
Ändra storlek på tabellintervall för att utesluta rubrik
Om du har en tabell på ett aktivt ark med en rubrikrad, kommer koden först att välja hela tabellen och sedan flytta ner en rad för att utesluta rubriken med hjälp av Range.Offset -metod. Den använder sedan egenskapen Range.Resize för att minska storleken med en rad.
1234567891011 | Sub SelectTableData ()' **VIKTIG**'Klicka på valfri cell i tabellen innan du kör makrot'Flytta ner en rad med hjälp av Offset och minska sedan intervallstorleken med en radAnge tbl = ActiveCell.CurrentRegion.Offset (1, 0) .Resize (tbl.Rows.Count - 1, _tbl.Columns.Count)'Data väljs exklusive rubrikradtbl.Adress.VäljAvsluta Sub |
Skriv 2-D Array To Range
En annan vanlig användning är att skriva en 2 -dimensionell array till ett ark. Eftersom intervallet som ska skrivas ska matcha storleken på arrayen, vilket normalt inte är känt i förväg, används metoden Resize för att ställa in utmatningsområdet
Exempel nedan kommer att läsa data i intervallet A1: E10 i aktivt ark till en array och skriva ut matrisen till "Output" -arket från cell A1:
123456 | Sub WriteArray ()'Läs data till en arraydata = Område ("A1: E10"). Värde'Ändra storlek på utmatningsområdet och skriv matrisenArbetsblad ("Output"). Område ("A1"). Ändra storlek (UBound (data, 1), UBound (data, 2)). Värde = dataAvsluta Sub |
Skriven av: Vinamra Chandra