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.