Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Benutzerdefinierte Struktur einem Variant zuweisen

Forumthread: 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

		
Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige