【问题标题】:Save sheets as CSV - ignoring hidden sheets or sheets with macros将工作表另存为 CSV - 忽略隐藏的工作表或带有宏的工作表
【发布时间】:2020-05-13 05:14:52
【问题描述】:

我需要将所有工作表保存为 CSV 文件,但四个隐藏工作表(“chip”、“play”、“other”和“offers”)和包含宏按钮的工作表(“Magic Buttons” )。

此代码保存所有工作表。我不知道从哪里开始(尽管反复试验并阅读了其他一些 Stack Overflow 问题)。

Sub SaveSheets()
'
' SaveSheets Macro
' Saves sheets as individual CSV files
'
Dim csvPath As String
csvPath = "C:\Daily Batch Files"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
    xWs.Copy
    Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
    Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • If xWs.Name <> "chip" And xWs.Name <> "play" And xWs.Name <> "Other" And xWs.Name <> "offers" Then.
  • if xWs.Visible = xlSheetVisible Then - 但您仍然需要按名称参考魔术按钮表。
  • 嗨,想知道我在这里做错了什么,因为我收到了错误 404。If xWs.Visible = xlSheetVisible And xWs.Name <> "Magic Buttons" Then For Each xWs In ThisWorkbook.Sheets xWs.Copy Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End If End Sub
  • @BigBen 使用的解决方案的替代方案是Select Case xWs.Name,然后是Case "chip" 等。让每个案例都没有内容,然后默认案例是保存为 CSV。这使您可以在工作表名称发生变化时添加它们,而且我更喜欢该格式的可读性。两种解决方案都可以正常工作。
  • 哇!谢谢@BigBen,这就是我一直遇到的问题。感谢您的帮助!

标签: excel vba csv export-to-csv


【解决方案1】:

保存的条件需要进入循环内部。

使用If...End If

For Each xWs In ThisWorkbook.Sheets
    If xWs.Name <> "chip" And xWs.Name <> "play" And _
        xWs.Name <> "Other" And xWs.Name <> "offers" And _
        xWs.Name <> "Magic Buttons" Then

        xWs.Copy
        Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
        Application.ActiveWorkbook.Close False
    End If
Next

使用Select Case...End Select

For Each xWs In ThisWorkbook.Sheets
    Select Case xWs.Name
        Case "chip", "play", "Other", "offers", "Magic Buttons"
        Case Else
            xWs.Copy
            Application.ActiveWorkbook.SaveAs Filename:=csvPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
            Application.ActiveWorkbook.Close False
    End Select
Next

【讨论】:

  • @BigBen 高效重构,一如既往
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
相关资源
最近更新 更多