Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Benutzerdefinierte Struktur einem Variant zuweisen

Benutzerdefinierte Struktur einem Variant zuweisen
27.08.2005 05:13:13
Michael
Liebe Excel Gemeinde,
ich moechte aus einem Excel Sheet heraus eine Flatfile zur Uebertragung per EDI an ein Hostsystem erzeugen. Hierzu plane ich das Satzformat der EDI Datei als benutzerdefinierte Type zu erstellen und in eine Flatfile zu schreiben.
Beispiel:
Option Explicit
Type TestType
Field01 As String * 10
Field02 As String * 20
End Type

Sub TestTheType()
Dim NewType As TestType
Dim varTest As Variant
NewType.Field01 = "1234567890"
NewType.Field02 = "09876543210987654321"
varTest = NewType
Open "C:\TEMP\EDIFILE.TXT" For Output As #1
Print #1, varTest
Close #1
End Sub
Bei Kompilierung des Moduls gibt Excel die Fehlermeldung "Nur benutzerdefinierte Typen, die in öffentlichen Objektmodulen definiert wurden, können in den oder aus dem Typ Variant umgewandelt werden, oder an eine zur Laufzeit auflösbare Funktion weitergeleitet werden" in Zeile "varTest = NewType".
Ist die Zuweisung grundsaetzlich moeglich und die Deklaration der Struktur nur an der falschen Stelle ? Muss ich eine spezielle Umwandlungsfunktion aufrufen ?
Danke fuer Eure Hilfe und tschuess aus Hong Kong
Michael

		

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefinierte Struktur einem Variant zuweisen
27.08.2005 07:36:31
Nepumuk
Hi,
so, wie ich das verstehe, geht das grundsätzlich nicht. Welche Datenstrucktur sollte denn deiner Meinung nach dieser Variant dann habe?
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Benutzerdefinierte Struktur einem Variant zuweisen
28.08.2005 16:06:10
Michael
Hallo Nepumuk,
statt das Satzformat in einer ewigen Sequenz von Stringverkettungen zu erstellen und dann in die Datei zu schreiben, moechte ich eben eine Struktur verwenden.
Da ich diese Struktur nicht in die Datei schreiben kann, ging ich davon aus, dass ich sie vorher in eine Variant Variable muss, um sie dann in die Datei schreiben zu koennen. Auch dies ist mir also nicht gelungen (siehe Fehlermeldung).
Gibt es denn keine Alternative zur Stringverkettung ?
Danke und CIAO
Michael
Anzeige
AW: Benutzerdefinierte Struktur einem Variant zuweisen
28.08.2005 16:12:45
Nepumuk
Hallo Michael,
setze deine Daten in einer Schleife in das Array um. Das geht rasend schnell. Folgende kleine Testroutine füllt ein Array mit 1.000.000 Einträgen in ~ 0,09 Sekunden.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Dim t As Single

Public Sub test()
    
    t = Timer
    
    Dim vArray(1 To 1000000) As Variant
    Dim lIndex As Long
    For lIndex = 1 To 1000000
        vArray(lIndex) = lIndex
    Next
    
    Debug.Print Timer - t
    
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Benutzerdefinierte Struktur einem Variant zuweisen
30.08.2005 02:31:53
Michael
Danke Nepumuk,
da die Felder des Satzformats alle eine unterschiedliche Auspraegung haben, kann ich Deinen Ansatz mit dem Array leider nicht verwenden. Ich habe jetzt den muehsamen Weg der Stringverkettung eingeschlagen, um mein Problem zu loesen.
CIAO
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige