Eigenschaft ist nicht gesetzt, soll aber abgefragt werden

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    @Soti Dies geht so nicht.
    arrBFs ist ja ein zweidimensionales Array von irgendwas, das kannst Du nicht zu einem String casten. Die 2. Zeile müsste dann so aussehen:

    VB.NET-Quellcode

    1. Dim arrCast = TryCast(arrBFs, String(,))
    Obs klappt, weißich nich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    FormatCondition(,)
    Auch dabei müsste doch ein regulärer .NET-Typ rauskommen. :/
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Soti Poste mal den kompletten Code und eine entsprechende Excel-Tabelle.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für eure Hilfe! Ich wollte es vermeiden, den ganzen Code hier reinzustellen, weil er einfach zu lang ist. Außerdem greift er auf andere Funktionen zu, die ich dann auch noch posten müsste. Die Anwendung ist in einem Add-in, welches von Excel aus gestartet wird. Diese Anwendung "putzt" bedingte Formatierungen. Damit meine ich, dass gewisse "unvollständige" bedingte Formatierungen in der aktiven Arbeitsmappe gesucht werden und diese dann einem Standardformat angepasst werden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Soti“ ()

    @Soti Erstell bitte ein neues Projekt und kopiere Deinen Code dort rein.
    Dann fügst Du alles rein bzw. löschst Zugriffe, bis sich das ganze kompilieren lässt.
    Das Projekt als ZIP sowie ebenfalls als ZIP eine Excel-Tabelle, mit der dasd ganze funktioniert und Deinen Effekt reproduziert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallöchen noch mal und sorry, dass ich mich nicht früher gemeldet habe, hatte aber so viel zu tun.
    Ich habe es hinbekommen. Es läuft und macht das, was es soll.
    Hier die betreffenden Bereiche aus dem Code:

    VB.NET-Quellcode

    1. Dim arrIntColor() As Object 'Array zum Sammeln der Eigenschaft: Zell-Hintergrundfarbe
    2. Dim all_FormCond As Microsoft.Office.Interop.Excel.FormatCondition 'Variable für alle bedingten Formatierungen des betreffenden Zellbereichs
    3. Dim BF_IntCol As Object 'Variable für bedingten Formatierung, Hintergrundfarbe des betreffenden Zellbereichs
    4. 'WERTE IN ARRAY SAMMELN
    5. For Each dings In rngSelectedRange
    6. all_FormCond = dings.FormatConditions(j)
    7. BF_IntCol = TryCast(all_FormCond.Interior.Color, Object)
    8. Next dings
    9. 'BF-REGEL BESTIMMEN (Regel "A")
    10. If Not IsDBNull(arrIntColor(n)) AndAlso _
    11. Not IsDBNull(BF_IntCol) Then


    Vielen Dank noch mal für Eure Unterstützung. Ohne, hätte ich es nicht geschafft!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Soti“ ()

    soweit ich sehe sind sowohl der TryCast als auch das IsDbNull falsch angewandt.

    Beim IsDbNull kann mans nicht genau sagen, weil das testet ja arrIntColor(n), und aus dem gezeigten Code wird nicht ersichtlich, wie die getuesteten Elemente ins arrIntColor() hineinkommen.

    Aber zumindest den TryCast kannste weglassen, und wird ebenso funktionieren. Probier das bitte mal.


    Wie gesagt, die IsDbNull-Testerei wahrscheinlich desgleichen.