Code Snippet "VBA Excel"
Zellen und Zellbereiche in Excel auswählen oder bearbeiten
Zusammenstellung der verschiedenen Möglichkeiten, auf Zellen oder Zellbereiche zuzugreifen (inkl. Schleifen, Range speichern, rel. und abs. Bezüge)
Sub Zellen_verarbeiten()
Dim objCell
Dim objrange As Range
Dim objsheet As Worksheet
Dim objworkbook As Workbook
Set objworkbook = Application.Workbooks("dateiname.xls")
Set objsheet = objworkbook.Sheets("blattname")
'Wert in Zelle mit bestimmtem Bezug setzen
objsheet.Range("A1").Value = 1
objsheet.Cells(1, 2).Value = 2
'***********************************
'Bereiche verarbeiten
'Via Bereichsbezüge angegebenen Bereich mit Formel füllen
Set objrange = objsheet.Range("C1:D1")
objrange.Formula = "=RAND()"
'Einen Bereich mit Range und Cells füllen
'Unbedingt objsheet.Cells.., sonst funktioniert es nur auf aktiviertem Blatt!
objsheet.Range(objsheet.Cells(2, 1), objsheet.Cells(4, 4)).Value = "Text"
'Schleife in Range
For Each objCell In objsheet.Range(objsheet.Cells(5, 1), objsheet.Cells(5, 3))
'Rnd erzeugt Zufallszahl >= 0 und < 1
objCell.Value = Int((10 * Rnd))
Next
'***********************************
'Zugriff auf ganz bestimmte Zellen
'1. benannten Bereich auswählen
objworkbook.Names(1).RefersToRange.Select
'Zeile 1 auswählen
Range("1:1").Select
'Mehrere Spalten auswählen
Range("A:A,C:C,F:F").Select
'Von Blattanfang bis zu aktiver Zelle markieren
Range("A1", ActiveCell).Select
'Block um die angegebene Zelle markieren
objsheet.Range("A1").CurrentRegion.Select
'Um eine Zeile nach unten verschieben
objsheet.Range("A1").Offset(1, 0).Select
'auf letzte ausgefüllte Zelle in der aktiven Zeile springen
Cells(ActiveCell.Row, 256).End(xlToLeft).Select
'Den ganzen benutzen Berech markieren
ActiveSheet.UsedRange.Select
'Zellen in Range speichern
Dim objGefundeneZellen As Range
Set objGefundeneZellen = Union(objsheet.Range("A1"), objsheet.Range("A3"))
objGefundeneZellen.Select
'letzte bearbeitete Zelle anspringen
objsheet.Cells.SpecialCells(xlCellTypeLastCell).Select
End Sub