自动将工作簿中的某些工作表保存为CSV文件

时间:2015-10-23 06:05:31

标签: excel vba excel-vba

我找到了一个不错的解决方案Saving excel worksheet to CSV files with filename+worksheet name using VB,用于将工作簿中的所有工作表保存为CSV文件。但是,我希望能够修改此代码,以便仅保存工作表,其中工作表名称以_t结尾。

我使用以下代码:

Sub SaveWorksheetsAsCsv()

Dim WS As Excel.Worksheet
Dim SaveToDirectory As String

Dim CurrentWorkbook As String
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

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

使用Right上的Instrworksheet.name - 方法获取最后一个字符/检查您的搜索字符串是否存在。

for each - 循环中添加以下代码:

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
相关问题