XLSX为csv:不必要地要求确认,不能选择范围
问题描述:
当我想要一个XLSX文件转换成用下面的代码为csv:XLSX为csv:不必要地要求确认,不能选择范围
WorkingDir = "C:\Users\Admin\Documents\example.xlsx"
Dim fso, FileName, SaveName, myFile
Dim objExcel, objWorkbook
Set fso = CreateObject("Scripting.FilesystemObject")
Set myFile = fso.GetFile(WorkingDir)
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = True
FileName = Left(myFile, InStrRev(myFile, "."))
Set objWorkbook = objExcel.Workbooks.Open(myFile)
objWorkbook.Sheets(1).Range("A2:C2").Select
SaveName = FileName & "csv"
objWorkbook.SaveAs SaveName, 23
objWorkbook.Close
Set objWorkbook = Nothing
Set objExcel = Nothing
Set fso = Nothing
Set myFolder = Nothing
它的工作原理,但问我,如果我要救我的变化在example.csv文件中。保存应该没有确认,也应该覆盖最终存在的.csv文件。
第二个问题是,我选择将被转换为.csv文件的example.xlsx文件的特定部分(行和coumns)的range命令不起作用。但没有错误。看起来vbscript跳过这个命令。
预先感谢您。
答
试着告诉Excel中的文件已经保存
objWorkbook.Saved = true
objWorkbook.Close
在保存您的选择范围方面,你可以尝试
objWorkbook.Sheets(1).Range("A2:C2").Copy
dim sheet: set sheet = objWorkbook.Sheets.Add()
' Add()ing should actually activate the sheet
' sheet.Activate
sheet.Paste
' SaveAs will save the active sheet
objWorkbook.SaveAs FileName, 23
。换句话说,你需要复制的第二数据工作表,然后将该工作表保存为您的csv。关闭工作簿(xlsx)而不保存它将丢弃该新工作表。
非常感谢。一切正常。 – nolags
@nolags太棒了!我有时会感到惊讶 –