如何将Excel工作表中的表保存为VBA中的CSV并继续处理上一个文件

ftf50wuq  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(155)

我试图从不同的工作表中导出表格,如果有一个修改,作为CSV数据。
我的代码从文件中导出所有表。如何使它只导出我正在执行宏的当前表?

  1. Public Sub SaveWorksheetsAsCsv()
  2. Dim xWs As Worksheet
  3. Dim xDir As String
  4. Dim folder As FileDialog
  5. Set folder = Application.FileDialog(msoFileDialogFolderPicker)
  6. If folder.Show <> -1 Then Exit Sub
  7. xDir = folder.SelectedItems(1)
  8. For Each xWs In Application.ActiveWorkbook.Worksheets
  9. xWs.SaveAs xDir & "\" & xWs.name, xlCSV
  10. Next
  11. End Sub

我想出了一个方法,但现在窗口打开为CSV文件。如何关闭csv文件并重新打开正在处理的工作表?

  1. Public Sub SaveWorksheetsAsCsvUndercarriageDefinition()
  2. Dim wbk As Workbook
  3. Dim xWs As Worksheet
  4. Dim xDir As String
  5. Dim folder As FileDialog
  6. Set wbk = Workbooks("Vba_Fehlerprüfung.xlsm")
  7. Set xWs = wbk.Worksheets("Undercarriage Definition")
  8. Set folder =
  9. Application.FileDialog(msoFileDialogFolderPicker)
  10. If folder.Show <> -1 Then Exit Sub
  11. xDir = folder.SelectedItems(1)
  12. 'For Each xWs In Application.ActiveWorkbook.Worksheets
  13. xWs.SaveAs xDir & "\" & xWs.name, xlCSV
  14. 'Next
  15. End Sub
krcsximq

krcsximq1#

我的建议是使用下面的子程序来导出一个表。列表对象

  1. Sub exportListobject(lo As ListObject, csvFilename As String)
  2. Dim wbNew As Workbook
  3. Set wbNew = Workbooks.Add
  4. Dim wsNew As Worksheet
  5. With wbNew
  6. Set wsNew = wbNew.Sheets(1)
  7. lo.Range.Copy
  8. wsNew.Range("A1").PasteSpecial Paste:=xlPasteAll
  9. .SaveAs Filename:=csvFilename, _
  10. FileFormat:=xlCSVMSDOS, CreateBackup:=False
  11. .Close False
  12. End With
  13. End Sub

它会将列表对象复制到一个新的工作簿中,将其保存为csv文件并关闭它。包含列表对象的工作簿将不会被触及。
如果你想从你的工作簿中导出一个工作表,你可以使用类似的子

  1. Sub exportSheet(sh As Worksheet, csvFilename As String)
  2. Dim wbNew As Workbook
  3. Set wbNew = Workbooks.Add
  4. Dim wsNew As Worksheet
  5. With wbNew
  6. sh.Copy wbNew.Sheets(1)
  7. Set wsNew = wbNew.Sheets(1)
  8. .SaveAs Filename:=csvFilename, _
  9. FileFormat:=xlCSVMSDOS, CreateBackup:=False
  10. .Close False
  11. End With
  12. End Sub
展开查看全部

相关问题