top of page
Offset
I VBA vill du ibland komma till en cell som ligger bredvid, ovanför eller under en specifik cell. Exempelvis vill du göra detta...
-
När du gör en loop där du kopierar celler från många flikar och vill lägga dessa under varandra i en ny flik
Men det kan även vara användbart i många andra fall, se fler exempel nedan
01/ Ställ upp din Offset
Offset skrivs efter den cell som valts och har de två argumenten antal rader och antal kolumner att "offset:a"
Range("A1").Offset(1, 0).Select
Du väljer först A1 sedan väljer du att ta en cell som är en rad under och noll kolumner till höger / vänster
Cellen du kommer välja blir således A2
02/ Exempel - Välj cellen under den sista cellen med värde i kolumn A
Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
1 2 3 4
-
Du väljer den sista cellen i kolumn A. I en version efter Excel 2003 blir detta cell A1048576
-
Detta är samma sätt som att du trycker Ctrl + piltangenten uppåt, du kommer således till den sista cellen med värden i kolumn A
-
Du "hoppar" en cell ned"
-
Du "selectar" cellen
03/ Exempel - Lägg värdet i cell A1 i alla celler i en ny flik
Nedan har flera olika moment som jag går igenom på denna hemsida. Hur du sätter en variabel, hur du upprepar kod (loop) och OM (IF). Det nedan gör är att den skapar en ny flik med namn Exempel och lägger värdet i cell A1 från alla andra flikar i den nya fliken under varandra i kolumn A
Sheets.Add(Before:=Sheets(1)).Name = "Exempel"
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "Exempel" Then
ws.Range("A1").Copy
Worksheets("Exempel").Paste Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
End If
Next ws
bottom of page