Tips og tricks

Undgå Select i din VBA-kode

I kapitel 6 i min VBA-bog starter vi med et eksempel på, hvordan man kan udfylde tomme celler i en datarapport ved hjælp af en makro. Eksemplet er ment som en måde at komme i gang på, hvilket vi gør ved at optage de kommandoer, vi ønsker udført. Dette medfører en masse Select-kommandoer, men hvis du vil lave en mere professionel løsning, bør du helt undgå disse og manipulere objekterne direkte ved hjælp af VBA.

I starten af kapitlet opretter vi makroen FillLabels, og den virker jo efter hensigten, men vi er også kun lige kommet i gang med at lære VBA.

Jeg har herunder skrevet en lidt mere professionel løsning, som helt undgår at fare rundt i regnearket ved hjælp af Select-metoden.

Eksempelfil: Du finder eksempelfilen Ordrer 04-2013 i mappen Kapitel 6.


Sub ProFillLabels()

  ' Variabelerklæring
  Dim rngData As Range
  Dim rngColToFill As Range
    
  ' Definer områdevariablerne - det er ALTID det første regneark
  Set rngData = ThisWorkbook.Worksheets(1).Range("A1")
  Set rngData = rngData.CurrentRegion
  Set rngColToFill = rngData.Resize(rngData.Rows.Count, 3)
    
  ' Udfyld de tomme celler med værdien fra cellen oven over
  rngColToFill.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    
  ' Indsæt værdien af formlen som værdi i cellen
  rngColToFill.Value = rngColToFill.Value
            
End Sub

På samme måde kan du selvfølgelig kode de andre makroer i kapitlet og resten af bogen, men vi skal jo starte et sted.

Lær mere

Du kan lære meget mere om makroer i min bog om VBA-programmering i Excel. Bogen fås både som e-bog og som i hardcopy som kursusmateriale.