Enregistrez automatiquement certaines feuilles dans le classur dans un file CSV

J'ai trouvé une solution décente Sauvegarde de la feuille de calcul Excel sur les files CSV avec nom de file + nom de la feuille de calcul à l'aide de VB pour sauvegarder toutes les feuilles de calcul dans un classur en tant que files CSV. Cependant, j'aimerais pouvoir modifier ce code pour sauvegarder uniquement les feuilles de calcul où le nom de la feuille se termine par _t .

J'utilise le code suivant:

 Sub SaveWorksheetsAsCsv() Dim WS As Excel.Worksheet Dim SaveToDirectory As Ssortingng Dim CurrentWorkbook As Ssortingng Dim CurrentFormat As Long CurrentWorkbook = ThisWorkbook.FullName CurrentFormat = ThisWorkbook.FileFormat ' Store current details for the workbook SaveToDirectory = "H:\test\" For Each WS In ThisWorkbook.Worksheets Sheets(WS.Name).Copy ActiveWorkbook.SaveAs Filename:=SaveToDirectory & ThisWorkbook.Name & "-" & WS.Name & ".csv", FileFormat:=xlCSV ActiveWorkbook.Close savechanges:=False ThisWorkbook.Activate Next Application.DisplayAlerts = False ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat Application.DisplayAlerts = True ' Temporarily turn alerts off to prevent the user being prompted ' about overwriting the original file. End Sub 

Est-ce possible?

Utilisez le button Right ou Instr -Method sur la propriété worksheet.name pour get les derniers caractères / vérifiez si votre string de search est en train d'exister.

Dans votre for each -loop, ajoutez le code suivant:

 If Right(WS.name, 2) = "_t" Then Sheets(WS.Name).Copy ActiveWorkbook.SaveAs Filename:=SaveToDirectory & ThisWorkbook.Name & "-" & WS.Name & ".csv", FileFormat:=xlCSV ActiveWorkbook.Close savechanges:=False ThisWorkbook.Activate End if