2016-04-03 8 views
1

Ich verwende diesen einfachen Code, um mein Arbeitsblatt aus Arbeitsmappe 1 in Arbeitsmappe 2 in demselben Ordner zu kopieren.VBA Excel reagiert nicht beim Kopieren von Daten in eine andere Arbeitsmappe

Sub Button27_Click() 
    Application.ScreenUpdating = False 
    Dim FileName As String 
    Workbooks.Open FileName:=ActiveWorkbook.Path & "\sefaresh.xlsm" 
    Application.Wait (Now + TimeValue("0:00:01")) 
    ThisWorkbook.Sheets("Sheet3").Copy 
    After:=Workbooks("sefaresh.xlsm").Sheets(Sheets.Count) 
    Application.ScreenUpdating = True 
End Sub 

Die Kopie & Paste-Funktion Prozess erfolgreich, aber wenn ich die Arbeitsmappe 2 zuerst in der Nähe, ich für Excel erhalten reagiert nicht. Irgendein Vorschlag?

Dank

+0

Versuch 'DoEvents' am Ende Ihres Unter. –

+0

Ich benutze das vorher, aber funktioniert nicht –

+0

versuchen, wenn workbook2 Datei beschädigt ist: benennen Sie es in einen neuen Namen, kopieren Sie alle seinen Inhalt (einschließlich aller Code) in eine neue Arbeitsmappe, speichern Sie die neue WB als den alten Namen von workbook2 und dann Probieren Sie Ihr Makro erneut aus. –

Antwort

0

Versuchen Sie, diese (Ungeprüfte). Sie sollten jetzt keine Fehlermeldung erhalten.

Dinge werden einfacher, wenn Sie mit Objekten arbeiten :)

Sub Button27_Click() 
    Dim wbThis As Workbook, wbThat As Workbook 
    Dim ws As Worksheet 
    Dim fName As String 

    On Error GoTo Whoa 

    Set wbThis = ThisWorkbook 
    Set ws = wbThis.Sheets("Sheet3") 

    fName = wbThis.Path & "\sefaresh.xlsm" 

    Application.ScreenUpdating = False 

    Set wbThat = Workbooks.Open(fName) 

    DoEvents 

    ws.Copy After:=wbThat.Sheets(wbThat.Sheets.Count) 

    '~~> close and save the workbook 
    wbThat.Close (True) 

    DoEvents '<~~ Give time for it to save and close 

LetsContinue: 
    Application.ScreenUpdating = True 
    MsgBox "Done" 
    Exit Sub 
Whoa: 
    MsgBox Err.Description 
    Resume LetsContinue 
End Sub 
+0

Ich mache das aber das selbe Problem. Ich habe die Nachricht DONE erhalten, aber nachdem ich die Arbeitsmappe 2 gelesen habe, reagierte ich nicht. –

+0

Scheint wie Ihre Arbeitsmappe2 ist beschädigt. Können Sie eine neue Kopie dieser Datei erstellen, indem Sie Daten aus dieser Datei in eine neue Datei kopieren? Erstellen Sie keine Kopie, indem Sie die Datei direkt kopieren. –

+0

ein neues workbook2 aber nicht wieder arbeiten. –

Verwandte Themen