简体   繁体   English

使用 VBScript 将 Excel 工作表的(部分)范围导出为 CSV

[英]Export Range of (Part of) an Excel Sheet to CSV with VBScript

Is there a way to export a range of cells from each Excel worksheet (in a workbook with multiple worksheets) to a CSV with VBScript?有没有办法使用 VBScript 将每个 Excel 工作表(在具有多个工作表的工作簿中)中的一系列单元格导出到 CSV? I don't need to skip blanks or do any re-formatting.我不需要跳过空格或进行任何重新格式化。

I tried the following.我尝试了以下方法。 You can copy-paste this into notepad and save it as test.vbs:您可以将其复制粘贴到记事本中并将其另存为 test.vbs:

    Dim oExcel
    Dim oBook
    Dim oWS
    
    Set oExcel = CreateObject("Excel.Application")
    Set oBook = oExcel.Workbooks.Open("c:\test\test.xlsx")
    
    For Each oWS In oBook.Sheets  
    oWS.Range("A9:B32").copy
    oWS.clear
    oWS.Range("A9:B32").paste
    oWS.Copy  
    oExcel.ActiveWorkbook.SaveAs oBook.Path & "\" & oBook.name & "_" & oWS.Name & ".csv",6
    oExcel.ActiveWorkbook.Close False  
    Next 
    oBook.Close False
    oExcel.Quit
    Set oExcel = Nothing

I tried to copy the range of cells, clear the worksheet then paste into the worksheet again and save that as a CSV.我尝试复制单元格范围,清除工作表,然后再次粘贴到工作表中并将其另存为 CSV。 It says "Error: Object doesn't support this property or method: 'oWS.clear'"它说“错误:对象不支持此属性或方法:'oWS.clear'”

Thanks in Advance提前致谢

Thanks for all the help.感谢所有的帮助。 This works and gives what I was looking/asking for: For Each oWS In oBook.Sheets这有效并提供了我正在寻找/要求的内容:对于 oBook.Sheets 中的每个 oWS
Dim temp temp = oWS.Range("A5:BY32").Value oWS.UsedRange.Clear oWS.Range("A1:BY29").Value = temp oWS.Copy Dim temp temp = oWS.Range("A5:BY32").Value oWS.UsedRange.Clear oWS.Range("A1:BY29").Value = temp oWS.Copy
oExcel.ActiveWorkbook.SaveAs oBook.Path & "" & oBook.name & "_" & oWS.Name & ".csv", outputFormat oExcel.ActiveWorkbook.SaveAs oBook.Path & "" & oBook.name & "_" & oWS.Name & ".csv", outputFormat
oExcel.ActiveWorkbook.Close False oExcel.ActiveWorkbook.Close False
Next The range is actually up to column "BY". Next 范围实际上是“BY”列。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM