2009-04-02 12 views
2

Ich versuche, den Inhalt der Zelle in die Zwischenablage zu kopieren.Wie kopiere ich den Inhalt einer Zelle in die Zwischenablage

Ich habe das genaue Beispiel in der Excel 2007-Hilfedatei gelesen und versucht. Aus irgendeinem Grund ist das DataObject-Objekt jedoch nicht gültig. Also das Beispiel:

Dim MyData As DataObject 

Private Sub CommandButton1_Click() 
    Set MyData = New DataObject 

    MyData.SetText TextBox1.Text 
    MyData.PutInClipboard 

    TextBox2.Paste 
End Sub 

Private Sub UserForm_Initialize() 
    TextBox1.Text = "Move this data to a " _ 
     & "DataObject, to the Clipboard, then to " _ 
     & "TextBox2!" 
End Sub 

Funktioniert nicht in meinem Fall. Ich habe jetzt lange gesucht und kann keine Antwort darauf finden, warum das DataObject-Objekt nicht verfügbar ist.

Hier ist mein Code:

Dim MyData As DataObject 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If ActiveCell.Column = 3 Then 
     Set MyData = New DataObject 
     MyData.SetText ActiveCell.Offset(-1, -1).Text 
     MyData.PutInclipboard 
    End If  
End Sub 

Fehler beim Compilieren ist: „Benutzerdefiniert Typ nicht definiert“, und es unterstreicht die „MyData Als Datenobjekt“ -Zeile.

Gibt es eine andere Methode, um den Text in einer Zelle einfach in die Zwischenablage zu kopieren?

Antwort

8

Ok, einige Dinge:

Zuerst müssen Sie einen Verweis auf zu „Microsoft Forms 2.0 Object Library“, wenn Sie durch nicht das Gefühl, wie die Suche, fügen Sie einfach ein Benutzerformular auf das Projekt und dann sofort löschen, die Referenz bleibt erhalten. Sie müssen diese Referenzdatenobjekt verwenden

Ich werde einige Code anhängen, die ich arbeite bekam ich die Offsets verändert, aber machen sie, was Sie brauchen ...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
Set MyData = New DataObject 
    If ActiveCell.Column = 3 Then 
     MyData.SetText ActiveCell.Offset(-1, 0).Text 
     MyData.PutInClipboard 
    End If 
End Sub 
+0

yep, dass das Problem war. Ich betreibe Win7 beta und anscheinend ist die FM20.dll nicht installiert. Ich wechselte zu einer XP Maschine, fügte die Referenz hinzu und jetzt funktioniert es wie erwartet. Danke curtisk –

+0

Dies funktioniert nicht für mich auf Excel 2007/Windows 7. Hinzufügen eines Benutzerformulars fügt diese Bibliothek nicht hinzu, es ist nicht in Referenzen aufgeführt, und die FM20.DLL scheint nicht auf meinem System zu sein, damit ich Kann nicht manuell hinzugefügt werden. – Gruff

+0

@Gruff Werfen Sie einen Blick in C: \ Windows \ System32 für FM20.dll, es ist auf meinem 64bit Win7 mit Office 2007 (SP3) – curtisk

Verwandte Themen