Excel OLE - Namen definieren für Zellenbereich

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Meridian
Beiträge: 12
Registriert: Di 22. Feb 2022, 12:19
OS, Lazarus, FPC: Window 11
CPU-Target: 64Bit
Wohnort: Cloppenburg

Excel OLE - Namen definieren für Zellenbereich

Beitrag von Meridian »

Hallo zusammen,

nach langer Zeit benötige wieder mal Hilfe.

Aus einer Datenbank erstelle ich per OLE ein Excel-Sheet mit entsprechenden Daten. Jetzt würde ich gerne bestimmte Bereiche z.B. von B5 bis D33 Range("B3:D33") einen Namen geben. Ich habe einen VBA Code gefunden, den ich gerne in Excel OLE umsetzen würde.

VBA-Code:

Sub MakeRange()
ActiveWorkbook.Names.Add _
Name:="tempRange", _
RefersTo:="=Sheet1!$B$5:$D$33"
End Sub


Es könnte so - xlApp.Workbooks[1].Worksheets[AcSh].Name.Add - funktionieren. Ich weiß aber nicht, wie es nach dem ...Name.Add weitergeht...

Würde mich über Tipps freuen und bedanke mich schon mal.

Gruß Meridian

ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Excel OLE - Namen definieren für Zellenbereich

Beitrag von ErnstVolker »

Hallo Meridian

ich habe mal mit Excel auf'm Mac etwas mit VBA gespielt:

Code: Alles auswählen

Sub Makro1()
'
' Makro1 Makro
'
    Range("D3:E4").Select
    ActiveWorkbook.Names.Add Name:="Fuchs", RefersToR1C1:="=Tabelle1!R3C4:R4C5"
    Range("F3:G4").Name = "Maus"
    Range("A1").Select
End Sub
Das hier: Range("F3:G4").Name = "Maus" funktioniert unter VBA auch.

Ist das Range-Objekt Name nicht auch mit den Beispielen zur Office-Automation ansprechbar?

https://wiki.freepascal.org/Office_Automation

https://wiki.lazarus.freepascal.org/Office_Automation

https://www.delphi-treff.de/tipps-trick ... n-steuern/

Viele Grüße
Volker

Meridian
Beiträge: 12
Registriert: Di 22. Feb 2022, 12:19
OS, Lazarus, FPC: Window 11
CPU-Target: 64Bit
Wohnort: Cloppenburg

Re: Excel OLE - Namen definieren für Zellenbereich

Beitrag von Meridian »

Hallo Volker,

klasse, das passt. Vielen Dank

Gruß helmut

Antworten