2016-09-21 3 views
1

Ich bin völlig neu in Microsoft VBA und ich bekomme Probleme, ein Excel-Makro zu beheben.Excel-Makro, das ein Arbeitsblatt speichert

Die Absicht dieses Makros ist, dass beim Drücken einer Schaltfläche automatisch das aktive Arbeitsblatt in einer Datei gespeichert wird, aber es funktioniert nicht und ich weiß nicht warum.

Es scheint mir richtig.

Sub Save() 
' 
' Save Macro 
' 
Sheets("My_sheet").Select 
    ChDir "C:\my_file" 
    ActiveWorkbook.SaveAs Filename:=Range("B6"), FileFormat:=xlOpenXMLWorkbookMacroEnabled, _ 
     Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ 
     CreateBackup:=False 
    Sheets("My_sheet").Select 
' 
End Sub 
+0

Was funktioniert nicht? Erhalten Sie einen Fehler? Was ist in 'Range (" B6 ")? – Comintern

+0

Ich bekomme einen Fehler, der "Sheets (" My_sheet ") hervorhebt. Wählen Sie" Teil dieses Makros und ich kann das Arbeitsblatt nicht speichern. 'Bereich (" B6 ")' es ist eine Zelle, in der ein Name geschrieben wird. Dieser Name muss der Name der gespeicherten Datei sein. – Rods2292

+2

Ich nehme an, Sie haben ein Blatt mit dem Namen "My_sheet"? Was ist der Fehler? – Comintern

Antwort

0

es in Ordnung, solange die Blattnamen als "My_Sheet" gesetzt zu funktionieren scheint, Ordner vorhanden sein und der Dateiname korrekt ist. Sie können versuchen, vor dem Speichern zu überprüfen, ob sie in Ordnung sind:

-1

Wenn Ihr nur das Blatt "My_sheet" als neue Arbeitsmappe zu speichern versuchen, dann ist dies versuchen.

Option Explicit 
Sub Save() 
    Dim Sht As Worksheet 

    Set Sht = ActiveWorkbook.Sheets("My_sheet") ' update sheet name 

    ' Copy the sheet to a new workbook 
    Sht.Copy 
    ''' !Note: run time error if folder doesn't exist 
    ChDir "C:\my_file" 

    ''' !Note: run time error if "B6" contains invalid file name or is empty 
    ' Save the copied sheet 
    ActiveWorkbook.SaveAs FileName:=Sht.Range("B6"), _ 
          FileFormat:=xlOpenXMLWorkbookMacroEnabled, _ 
          Password:="", _ 
          WriteResPassword:="", _ 
          ReadOnlyRecommended:=False, _ 
          CreateBackup:=False 


End Sub 

Siehe auch How to avoid using Select in Excel VBA macros

For File Format See Examples

+0

Was ist der Zweck von 'Sht.Copy'? Alles, was wir tun, ist alles, was in der Zwischenablage ist. – Comintern

Verwandte Themen