Halli hallo hallöchen,
um eine Spalte zu löschen musst du diese nicht umbedingt selectieren.
Delete ist eine Funktion eines Range-Objektes.
Zum Beispiel:
1. Excel starten
2. Arbeitsmappe erstellen
3. Dritte Spalte aus erster Tabelle entfernen
Dim app As Variant ' excel application object
Dim books As Variant ' workbooks list object
Dim book As Variant ' workbook object
Dim sheets As Variant ' worksheets list object
Dim sheet As Variant ' worksheet object
Dim range as Variant ' range object
Const xlToLeft = -4159
' run excel
Set app = CreateObject("Excel.Application")
app.Visible = True
' add a new woorkbook
Set books = app.Workbooks
Set book = books.Add()
' get the first worksheet
Set sheets = book.Worksheets
Set sheet = sheets(1)
' get the first column and delete column
Set range = sheet.Column(3)
Call range.Delete(xlToLeft)
Ich für meinen Teil vermeide es, Zellenbereiche (Range-Objekte) mit Buchstaben zu adressieren.
Mit Zählern braucht man sich um eine korrekte Adressierung mittels eines Strings nicht zu kümmern.
1. Einen bestimmten Bereich ("A3:C5") als Range-Object (range)
Set range = sheet.Range(sheet.Cells(3,1),sheet.Cells(5,3))
2. Eine Spalte ("S:S") als Range-Objekt (column)
Dim column as Variant
Set column = sheet.Columns(19)
Was deine die Farbcodes betrifft:
Die Eigenschaft ColorIndes des Interior-Objektes (das du von einem Range-Objekt bekommst) holt sich die Farbe aus einem vordefinierten Satz an Farben (s. Menü "Extras\Optionen" Register "Farbe").
Die dort definierten Farben kannst du natürlich ebenfalls manipulieren.
' RGB ist eine Funktion die mir einen entsprechenden Long vert zurück gibt
book.Colors(55) = RGB(206,229,223)
book.Colors(56) = RGB(225,225,225)
' Farbe verwenden
Dim myinterior as Variant
Set myinterior = range.Interior
myinterior.ColorIndex = 55
' keine Farbe verwenden
Const xlNone = -4142
Set myinterior = range.Interior
myinterior.ColorIndex = xlNone
Die Namen der Variablen richten sich nach dem Code oben.