Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1204to1208
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

LZ-Fehler 458, Variable verwendet nicht unterstüt

LZ-Fehler 458, Variable verwendet nicht unterstüt
Reinhard
Hallo Wissende,
in der Mappe: https://www.herber.de/bbs/user/74111.xls
ruft beim Öffnen das Open_Eriegnis:
Private Sub Workbook_Open()
Dim MyArray() As String
Const Dat As String = "c:\test\Dateiliste1_2.txt"
Call Lesen(Dat, MyArray)
End Sub

dann die Prozedur Lesen auf:
Sub Lesen(wks, MyArray)
MyArray = ReadArray("c:\test\Dateiliste1_2.txt")
End Sub

die dann wiederum die Prozedur aufruft:
Public Function ReadArray(ByVal sFile As String) As Variant
Dim F As Integer, nCount As Long, vArray As Variant
If Len(Dir$(sFile)) > 0 Then
F = FreeFile
Open sFile For Binary As #F
Get #F, , nCount
'MsgBox nCount
ReDim vArray(nCount)
Get #F, , vArray
Close #F
End If
ReadArray = vArray
End Function

Gehe ich das mit F8 durch, so erscheint (erst!) bei Erreichen bzw. nach "End Function" die Fehlermeldung:
LZ-Fehler 458, Variable verwendet einen in VB nicht Unsterstützten Typ der Automatisierung.
Was muß ich verbessern?
Danke ^ Gruß
Reinhard

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: LZ-Fehler 458, Variable verwendet nicht unterstüt
24.03.2011 16:57:27
Rudi
Hallo,
verstehe ich nicht:
Get #F, , nCount
Get #F, , vArray
Mit der gleichen Anweisung willst du 2 versch. Dinge erreichen?
Was hast du überhaupt vor?
Gruß
Rudi
AW: LZ-Fehler 458, Variable verwendet nicht unterstüt
24.03.2011 17:36:31
Reinhard
Hallo Rudi,
ich möchte in eine Textdatei ein mehrdimensionales Array schreiben und wieder auslesen.
Dazu fand ich den nachstehenden VB-Code und habe mir den umgewandelt
http://www.vbarchiv.net/tipps/tipp_1093-array-schnell-speichern-und-wieder-laden.html
Den habe ich mir umgeschrieben. Gut, "If (Not Not MyArray) > 0 Then" irritiert mich", aber er funktioniert.
Den Fehler weshalb ich hier anfragte konnte ich inzwischen selbst finden, habe aber noch getestet ob er wirklich weg ist, inzwischen hast du schon geantwortet.
Es lag bei mir an
Private Sub Workbook_Open()
Dim MyArray() As String

So funktionierst es:
Private Sub Workbook_Open()
Dim MyArray As Variant
Danke ^ Gruß
Reinhard

' Array in Datei speichern
Public Sub SaveArray(ByVal sFile As String, _
vArray As Variant)
Dim F As Integer
Dim nCount As Long
' Falls Datei vorhanden, zunächst löschen
If Dir$(sFile)  "" Then Kill sFile
' Datei im Binary-Mode öffnen
F = FreeFile
Open sFile For Binary As #F
' Anzahl Elemente speichern
nCount = UBound(vArray)
Put #F, , nCount
' Array-Elemente speichern
Put #F, , vArray
Close #F
End Sub
' Array aus Datei einlesen
Public Function ReadArray(ByVal sFile As String) As Variant
Dim F As Integer
Dim nCount As Long
Dim vArray As Variant
' Datei im BinaryMode öffnen
If Len(Dir$(sFile)) > 0 Then
F = FreeFile
Open sFile For Binary As #F
' Anzahl Elemente lesen
Get #F, , nCount
' Array dimensionieren und einlesen
ReDim vArray(nCount)
Get #F, , vArray
Close #F
End If
ReadArray = vArray
End Function
'String-Array erstellen und in Datei speichern
ReDim MyArray(10) As String
Dim i As Long
For i = 0 To 10
MyArray(i) = "Zeile " & CStr(i)
Next i
' Array speichern
SaveArray App.Path & "\MyArray.dat", MyArray
'Array aus Datei einlesen
Dim MyArray() As String
MyArray = ReadArray(App.Path & "\MyArray.dat")
' Ist das Array dimensioniert?
If (Not Not MyArray) > 0 Then
' Inhalt zum Test in einer ListBox anzeigen
Dim i As Long
Dim nCount As Long
nCount = UBound(MyArray)
For i = 0 To nCount
List1.AddItem MyArray(i)
Next i
End If


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige