Domino 9 und frühere Versionen > ND6: Entwicklung

Exel Export - delete column ??

<< < (3/3)

Gandhi:
Keine Ahnung.
Mein Vorgehen ist wie folgt:
Ich zeichne ein Macro auf, dass genau das tut, was ich will. In Deinem Fall also würde ich ein Macro aufzeichnen, in dem eine Spalte gelöscht wird.
Dann schaue ich mir das Macro im VBA-Editor an. Den öffnest Du aus Excel über die Optionen Macro editieren.
Dort steht dann schon mal das Grundgerüst - allerdings mit den VBA Konstanten (z.B. Farbe).
Die kannst Du in Integer umwandeln, in dem Du sie im Object Browser (innerhalb des VBA-Editors) nachschlägst.
Den Code kannst Du mehr oder weniger 1:1 übernehmen - Fallstrick ist alleine die Tatsache, dass Du vor Dinge wie Selection noch ein objExcel. schreiben musst.

Greg:
Das mit dem makro aufzeichn hab ich ganz zu anfang gemacht hat leider nicht getan ! Deswegen habe ich dieses Problem auch!

diali:
'xlApp ... Excel-Objekt
 
z.B. Spalte B löschen
xlApp.Columns("B:B").Select
xlApp.Selection.Delete -4159
   
z.B. Zelle C2 auf keine Hintergrundfarbe setzen
xlApp.Range("C2").Select
xlApp.Selection.Interior.ColorIndex = -4142

Johnson:
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.

Greg:
 OK dankeschön an alle für die Hilfe !!!!

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln