Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DataObject

Forumthread: DataObject

DataObject
15.09.2004 22:26:02
Werner
Hallo Spezialisten,
Bei diesen Makro von Hans, erhalte ich folgende Fehlermeldung:

Fehler beim Kompilieren:
Benutzerdefinierter Typ nicht definiert
und "ClipAbLage As DataObject" ist markiert!

Fehlt da ev. noch ein Verweis? wenn ja welcher?


Sub Var2ClipBoard()
Dim ClipAbLage As DataObject
Dim Txt$
    Set ClipAbLage = New DataObject
    Txt = InputBox("Variablenwert:", , "Hallo!")
    ClipAbLage.SetText Txt
    ClipAbLage.PutInClipboard
    ActiveSheet.Paste
End Sub
Danke für eure Hilfe gruss Werner
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: DataObject
15.09.2004 22:28:50
Ramses
Hallo
Du musst im VB-Editor noch dein Verweis auf
"Microsoft Forms 2.0 Object Library"
erstellen. Ist diese in der Verweisliste nicht vorhanden, auf hinzufügen klicken und im Windows-Verzeichnis nach der Datei "FM20.DLL" suchen und auf diese dann den Verweis setzen.
Gruss Rainer
Anzeige
Danke
15.09.2004 22:33:22
Werner
Hallo Rainer,
Danke für deine Hilfe!
Gruss Werner
;
Anzeige

Infobox / Tutorial

Verwendung von DataObject in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster, wähle Einfügen und dann Modul.
  3. Füge den Code ein:

    Sub Var2ClipBoard()
       Dim ClipAbLage As DataObject
       Dim Txt As String
       Set ClipAbLage = New DataObject
       Txt = InputBox("Variablenwert:", , "Hallo!")
       ClipAbLage.SetText Txt
       ClipAbLage.PutInClipboard
       ActiveSheet.Paste
    End Sub
  4. Verweis auf Microsoft Forms 2.0 Object Library setzen:

    • Gehe im VBA-Editor zu Extras > Verweise.
    • Suche nach "Microsoft Forms 2.0 Object Library" und aktiviere das Häkchen. Falls diese nicht vorhanden ist, klicke auf Durchsuchen und finde die Datei FM20.DLL im Windows-Verzeichnis.
  5. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle Var2ClipBoard und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert:

    • Stelle sicher, dass du den Verweis auf "Microsoft Forms 2.0 Object Library" gesetzt hast, wie in der Schritt-für-Schritt-Anleitung beschrieben.
  • Das DataObject funktioniert nicht:

    • Überprüfe, ob du den Code genau so eingegeben hast, wie in der Anleitung angegeben. Achte auf Schreibfehler.

Alternative Methoden

Falls du die DataObject-Klasse nicht verwenden möchtest, kannst du auch die Zwischenablage mit der API verwenden. Hier ist ein einfaches Beispiel:

Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Declare Function CloseClipboard Lib "user32" () As Long
Declare Function EmptyClipboard Lib "user32" () As Long
Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long

Sub CopyToClipboard(Text As String)
    OpenClipboard 0
    EmptyClipboard
    'Hier wäre der Code, um Text in die Zwischenablage zu kopieren
    CloseClipboard
End Sub

Praktische Beispiele

Hier ist ein Beispiel, wie du das DataObject verwenden kannst, um den Inhalt einer Zelle in die Zwischenablage zu kopieren:

Sub CopyCellToClipboard()
    Dim ClipAbLage As DataObject
    Set ClipAbLage = New DataObject
    ClipAbLage.SetText Range("A1").Value
    ClipAbLage.PutInClipboard
End Sub

Dieses Makro kopiert den Inhalt der Zelle A1 in die Zwischenablage, sodass du ihn überall einfügen kannst.


Tipps für Profis

  • Nutze DataObject immer dann, wenn du Text in die Zwischenablage kopieren möchtest, z.B. für den Export von Daten.
  • Achte darauf, dass du die Bibliotheken richtig referenzierst, um Komplikationen beim Kompilieren zu vermeiden.
  • Du kannst auch msforms.dataobject verwenden, um eine benutzerdefinierte Zwischenablagelösung zu erstellen.

FAQ: Häufige Fragen

1. Warum kann ich den DataObject-Typ nicht verwenden?
Es kann sein, dass du den Verweis auf die "Microsoft Forms 2.0 Object Library" nicht gesetzt hast. Folge den Anweisungen in der Schritt-für-Schritt-Anleitung, um dies zu überprüfen.

2. Gibt es eine Möglichkeit, die Zwischenablage ohne DataObject zu verwenden?
Ja, du kannst auch Windows API-Funktionen verwenden, um mit der Zwischenablage zu arbeiten. Schau dir das alternative Beispiel in diesem Tutorial an.

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