xlsx 到 csv:不需要确认,不能 select 范围
xlsx to csv: unwantedly asks for confirmation, cannot select range
当我想使用以下代码将 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 文件。
第二个问题是 select 将被转换为 .csv 文件的 example.xlsx 文件的特定部分(行和列)的范围命令不起作用。但是没有错误。似乎 vbscript 跳过了这个命令。
提前谢谢你。
尝试告诉Excel文件已经保存
objWorkbook.Saved = true
objWorkbook.Close
在保存 select 范围方面,您可以尝试
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
换句话说,您需要在第二个作品中复制数据sheet,然后将该作品sheet保存为您的 csv。关闭工作簿 (xlsx) 而不保存它会丢弃新的 sheet.
当我想使用以下代码将 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 文件。
第二个问题是 select 将被转换为 .csv 文件的 example.xlsx 文件的特定部分(行和列)的范围命令不起作用。但是没有错误。似乎 vbscript 跳过了这个命令。
提前谢谢你。
尝试告诉Excel文件已经保存
objWorkbook.Saved = true
objWorkbook.Close
在保存 select 范围方面,您可以尝试
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
换句话说,您需要在第二个作品中复制数据sheet,然后将该作品sheet保存为您的 csv。关闭工作簿 (xlsx) 而不保存它会丢弃新的 sheet.