【问题标题】:Automatically save certain sheets in workbook to CSV file自动将工作簿中的某些工作表保存到 CSV 文件
【发布时间】:2015-10-23 06:05:31
【问题描述】:

我找到了一个不错的解决方案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

这个可以吗?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

    在您的for each-loop 中添加以下代码:

    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
    

    【讨论】:

    • 完美!感谢您的快速解决方案。按描述和要求工作。
    • 如果可能,请使用对勾将问题标记为已回答,不客气:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多