2017-06-11 6 views
1

Ich bin sehr neu in VBA. Ich versuche, ein Arbeitsblatt zu einem anderen Arbeitsblatt mit folgendem Code zu Copypaste:CopyPaste in VBA

Sub CopyPaste 

Dim Source As String 
Dim Destination As String 

Set Source ="\\D:\folder\source.xls" 
Set Destination="\\D:\folder\destination.xls" 
FileCopy Source, Destination 
End Sub 

Ich benutze hauptsächlich den Code enthält in: VBA to copy a file from one directory to another

aber es Aufgabe erforderlich Fehler gibt. Ich stecke an diesem Punkt fest.

Vielen Dank

+0

Sie verpassen einen Backslash zwischen C: und Desktop. Befindet sich Ihr Desktop-Ordner auch im Stammverzeichnis Ihres C-Laufwerks? –

+0

Ich habe sie sofort gemacht. Sorry für Unannehmlichkeiten, ich änderte sie @Aiden Grossman –

+0

@JonsiBillups Haben Sie die fso, wie in den verlinkten Post instanziiert? Zeigen Sie Ihren Code für FileCopy und geben Sie an, in welcher Zeile der Fehler auftritt. – Absinthe

Antwort

1

Set wird nur verwendet, Werte zuweisen Variablen auf Objekt-Typ.

Sub CopyPaste 

Dim Source As String 
Dim Destination As String 

Source ="\\D:\folder\source.xls" 
Destination="\\D:\folder\destination.xls" 
FileCopy Source, Destination 
End Sub 

Diese zwei umgekehrten Schrägstriche, bevor Ihre Pfade seltsam aussehen.

1

Die beiden Schrägstriche verwendet werden würden, wenn Sie zum Beispiel auf einen Netzwerkpfad Speichern wurden

"\\servername\sharename\filename.xls" 

Die korrekte Syntax für Ihr Code sollte sein:

Sub CopyPaste 
    Dim Src As String 
    Dim Dst As String 

    Src ="D:\folder\source.xls" 
    Dst="D:\folder\destination.xls" 

    FileCopy Src, Dst 
End Sub 

auch als A.S.H angegeben mich nicht daran erinnern Set mit String-Variablen zu verwenden.

Filecopy hat mich in der Vergangenheit Probleme, so dass, wenn Sie Probleme haben Sie den Code unten als Alternative versuchen:

Sub CopyPaste 
    Dim fs As Object 
    Dim Src As String 
    Dim Dst As String 

    Src = "D:\folder\source.xls" 
    Dst = "D:\folder\destination.xls" 

    Set fs = CreateObject("Scripting.FileSystemObject") 
    fs.CopyFile Src, Dst 
    Set fs = Nothing 
End Sub 
+0

Dies funktioniert, wenn ich Dim Section für Src und Dst –

+0

löschen Verwenden Sie nicht 'Set' mit Strings. –

+0

@ A.S.H Danke für die Klarstellung, sorry, dass ich gestern Abend nicht gerade nachgedacht habe und ich aus dem Gedächtnis gehe, da ich keinen Computer mit mir hatte. –