2016-05-03 6 views
1

Ich möchte eine Frage stellen. Ich habe Codes, wie ich die letzte Reihe von Excel in vba speichern kann, Aber in meinen Codes möchte ich eine Bedingung hinzufügen, wo zum Beispiel letzte Zeile ausgewählt wird, wenn cell.value der Spalte E = "deaktivieren" dannWie setzt man die Bedingung in Excel VBA basierend auf dem Zellenwert?

‚speichern wie diese WB.SaveAs Dateiname: = "C: \ Neuer Ordner \" & Dateiname, Fileformat: = 51

End If

Dies ist meine Codes

Sub Increment() 
    ' change A1 to the cell you wish to Increment 
    Range("A1").Value = Range("A1").Value + 1 
End Sub 

Private Sub CommandButton1_Click() 
Call SaveLastLine 
End Sub 

Sub SaveLastLine() 

    'Variable declaration 
    Dim score As String 
     Dim WB As Workbook, _ 
      filename As String 

     'Turn off screen updating and alerts 
     Application.ScreenUpdating = False 
     Application.DisplayAlerts = False 
     'Make a copy of the last line of Active Sheet 

     newName = ActiveSheet.Name 
     Range("B1").Select 
     Selection.End(xlDown).Select 
     Range(Selection, Selection.End(xlToRight)).Select 

     Selection.Copy 
     Workbooks.Add 
     ActiveSheet.Paste 

    Call Increment 

     FileNane1 = Range("A1").Value 

     Set WB = ActiveWorkbook 
     filename = newName & FileNane1 & ".xlsx" 
     WB.SaveAs filename:="C:\New Folder\" & filename, FileFormat:=51 

     'Restore screen updating and alerts 

     Application.DisplayAlerts = True 
     Application.ScreenUpdating = True 

End Sub 

Gibt es jemanden, der mir helfen kann, in meinen VBA-Codes eine Bedingung hinzuzufügen?

Bitte jeder kann mir helfen.

+4

Haben Sie tatsächlich diesen Code geschrieben? Weil Ihre Frage im Grunde nur "Wie verwende ich eine Wenn-Dann-Anweisung" ist. –

+0

Was ich meine, ist, vor der Ausführung der Zeile von SaveAs ich möchte Bedingung setzen, die überprüfen wird entweder Zelle Wert der Spalte E ist gleich "Deaktivieren", wenn Disable ist, dann Ausführen SaveAs Zeile sonst werde ich anderen Pfad von SaveAs setzen. Bedeutet, dass ich in zwei verschiedenen Ordnern speichern möchte. –

+0

Und so ?! Das ist nicht die Antwort !! Unten ist die wirkliche Antwort. Ich bin nicht gut in Vb-Codes, außer PHP JAVA und so weiter. –

Antwort

2
FileName1 = Range("A1").Value 
if FileName1 = "disable" then 
    Set WB = ActiveWorkbook 
    filename = newName & FileNane1 & ".xlsx" 
    WB.SaveAs filename:="C:\New Folder\" & filename, FileFormat:=51 
end if 
+0

Ich denke, es gibt ein Problem mit Ihrem Code - Sie haben Filename1 auf gleiche Range ("A1"). Wert, aber später verwenden Sie "If Filename = ...". Sei konsistent mit deinen Variablen. Um dies zu unterstützen, setzen Sie Option Explicit ganz oben auf alle Ihre VBA-Module. das wird Excel mitteilen, einen Fehler zu geben, wenn Sie einen Name verwenden, den Sie noch nicht deklariert haben. –

+0

Vielen Dank MikeyM !!! Ich habe es aus deiner guten Logik gemacht. –

Verwandte Themen