Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#19

AW: AnsiStringArray aus DLL an Excel-VBA

  Alt 10. Mai 2019, 12:40
Sorry das ich das nochmal vor krame..
Habe das vorhin nochmal gelesen und festgestellt das deine abfrage auf
Code:
  If flist > "" Then
viele zu spät kommt..

Was machst du wenn
Code:
If flist = ""
ist?

Dann wird das Array alist() nicht initialisiert und die nächste Abfrage lässt deine Anwendung abstürzen.
Code:
alist = Split(flist, "|")
n_Anz = UBound(alist) - LBound(alist) + 1
mache es direkt nach der Initialisierung von flist.

Code:
Public Function GetDelphiStringVektor(Anzahl As Long) As Variant

 Dim flist As String
 Dim LngP As Long
 Dim alist() As String

 Const Delimiter As Byte = 124

 Dim StrVektor() As String
 Dim i As Long
 Dim n_Anz As Long
 Dim Bis As Long

    LngP = PAnsiChar_To_Excel(Delimiter) ' >>> "|"

    flist = VBStrFromAnsiPtr(LngP)
    If flist > "" Then
        alist = Split(flist, "|")

        n_Anz = UBound(alist) - LBound(alist) + 1

        Bis = Anzahl
        If n_Anz < Anzahl Then Bis = n_Anz

        ReDim StrVektor(n_Anz, 0 To 0) ' SpaltenVektor
 
        For i = LBound(alist) To Bis - 1
            StrVektor(i, 0) = alist(i)
        Next

        GetDelphiStringVektor = StrVektor
    else
        GetDelphiStringVektor = ""
    End If

End Function
gruss
  Mit Zitat antworten Zitat