Good old Excel

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von ehrmmst.

    Good old Excel

    Hallo,

    da ich die in meinem Programm eingebenen Werte zum Backup in ein Excel File schreibe sollte dieses Excel File danach auch einigermaßen ansehnlich sein.

    Makros möchte ich nicht aufnehmen, da alles kompakt in meinem Programm sein soll.

    Leider find ich kaum Codes die ich für Excel anwenden kann, auch meine beiden Bücher mit insgesamt mehr als 2500 Seiten lassen mich im Stich.

    Gibt es irgendwie die Möglichkeit Excel-Formatierungscodes nachzusehen?

    Beispielsweise habe ich im Web den Befehl für Mittige Ausrichtung der Zellen gefunden:

    VB.NET-Quellcode

    1. Me.Cells.HorizontalAlignment = 1 ' Links
    2. Me.Cells.HorizontalAlignment = 3 ' Zentriert
    3. Me.Cells.HorizontalAlignment = 4 ' Rechts

    da kommt man von selbst nie drauf.



    Ich glaube ich habe euere Zeit verschwendet, ich kann ja Makros aufnehmen und dann den Code rauslesen. :)
    Braucht man auch nicht.

    Es gibt in Visual Studio zum einen einen ObjektExplorer und zum anderen IntelliSense.
    Cells sind von Typ Microsoft.Office.Interop.Excel.Range
    Du findest alle Eigenschaften und Methoden in Visual Studio.

    BEschreibungen sind da allerdings nicht dabei.
    Dazu verwende ich Excel
    Öffne den VBA Editor und die Hilfe.
    Gib dort ein Range.
    Lass dir alle Element vom Rangeobjekt anzeigen und du erhältst eine detaillierte Übersicht.

    Ciao Mono
    Das ist meine Signatur und sie wird wunderbar sein!
    Leider zeigt mir der IntelliSense keine Erweiterungen an. Also anscheinend beachtet er die Excel Befehle nicht obwohl ich sie als Verweis gesetzt hab (Projekt-->Verweis hinzufügen --> Mic.Excel 12)

    Ich machs jetz auch mit Excel, ist das einfachste.
    Du musst entweder Imports Microsoft.Office.Interop noch importieren und dann die richtigen Typen verwenden.
    Also nicht

    VB.NET-Quellcode

    1. dim excel as Object


    Sondern

    VB.NET-Quellcode

    1. dim excel as Application


    ODer

    VB.NET-Quellcode

    1. dim excel as Microsoft.Office.Interop.Excel.Application
    Das ist meine Signatur und sie wird wunderbar sein!
    Ich werd dann nochmal drüber gehen, bisher gehts ja.



    Kurz noch was anderes, weißt du zufällig ob man bei Excel den Befehl Range, z.B.: "Range("A6:J15")" auch anders schreiben kann, damit man ihn mit einer For-Schleife verknüpft.

    Ich mein Z.B.: Range (1;3 , 10;17)

    Also A3 bis J17

    MarcoIT schrieb:

    @Mono

    Visual Sudio sagt bei mir
    Ändern Sie
    "dim excel as Microsoft.Office.Interop.Excel.Application"

    in

    "dim excel as Application"

    warum wird das bei dir nicht angezeigt?


    Hast du einen Verweis auf Microsoft.Office.Interop.Excel hinzugefügt?

    ehrmmst schrieb:


    Ich werd dann nochmal drüber gehen, bisher gehts ja.



    Kurz noch was anderes, weißt du zufällig ob man bei Excel den Befehl Range, z.B.: "Range("A6:J15")" auch anders schreiben kann, damit man ihn mit einer For-Schleife verknüpft.

    Ich mein Z.B.: Range (1;3 , 10;17)

    Also A3 bis J17


    Ja das kann man.
    EIne Möglichkeit:

    VB.NET-Quellcode

    1. With Worksheet
    2. .Range(.Cells(1,1),.Cells(10,12))
    3. End With
    Das ist meine Signatur und sie wird wunderbar sein!
    Also ich hab
    Imports
    Excel = Microsoft.Office.Interop.Excel

    und
    Dim xlApp As Excel.Application

    Dim xlWorkBook As Excel.Workbook


    trotzdem sagt er mir bei folgenden Code ewig viel Fehler, also bei allen mit "xl" beginnenden Befehlen.


    VB.NET-Quellcode

    1. With Selection.Borders(xlInsideVertical)
    2. .LineStyle = xlDashDot
    3. .ColorIndex = xlAutomatic
    4. .TintAndShade = 0
    5. .Weight = xlThin
    6. End With
    7. With Selection.Borders(xlInsideHorizontal)
    8. .LineStyle = xlDashDot
    9. .ColorIndex = xlAutomatic
    10. .TintAndShade = 0
    11. .Weight = xlThin
    12. End With




    Der Code ist aus dem Excel Makro, wahrscheinlich kann ich ihn dann nicht einfach übernehmen oder liegts an der Konfiguration?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ehrmmst“ ()

    Ja.
    Verwende: XlBordersIndex.xlInsideVertical
    Wenn du nach Borders Klammer auf schreibst, zeigt dir die IDE 2 Überladungen an.
    Einmal keinen Parameter und eine zweite Überladung mit einem Parameter vom Typ XlBordersIndex.
    Schreibst du nach Klammer auf einfach noch ein x oder c oder whatever, dann bietet mir visual Studio alle Enumwerte an.
    Das ist meine Signatur und sie wird wunderbar sein!
    OK super, jetz hab ich die Befehle. Klasse, da wär ich wahrscheinlich nie drauf gekommen.

    Muss es jetzt dann so aussehen?

    VB.NET-Quellcode

    1. For i = 1 To VA
    2. With xlWorkBook.Sheets(1).Range(".Cells(1, 6)", ".Cells(i, 15)")
    3. .Excel.XlBordersIndex.xlInsideVertical()
    4. .Excel.XlLineStyle.xlSlantDashDot()
    5. End With
    6. Next


    Hab leider jetzt grad keine möglichkeit zu Testen wegen Lizenzkonfilikt. :)
    Eher so:

    VB.NET-Quellcode

    1. Dim r As Excel.Range
    2. For i = 1 To VA
    3. With xlWorkBook.Worksheets(1)
    4. r = .Range(.Cells(1, 6), .Cells(i, 15))
    5. End With
    6. With r.Borders(Excel.XlBordersIndex.xlInsideVertical)
    7. .LineStyle = Excel.XlLineStyle.xlContinuous
    8. End With
    9. Next
    Das ist meine Signatur und sie wird wunderbar sein!