```
'
'将本代码保存为 .vbs。如 Excel2csv.vbs, 将 .xlsx,.xls等Excel文件拖放到本脚本(如 Excel2csv.vbs), 即可实现相应的功能。
' *============================================================================*
' * 批量 xlsx/xls/csv 间格式转换工具, By HongQingFa, 2023-09-10 *
‘
’ **根据脚本的名称进行对应转换, 如可将脚本命名为:Excel2Xlsx.vbs, Excel2Xls.vbs, Excel2csv.vbs, 如为其它脚本名称,则转换为 .csv**
‘*============================================================================*
' FileFormat:=xlOpenXMLWorkbook
' xlOpenXMLWorkbook = 51 '打开 XML 工作簿。
' XlFileFormat 枚举,指定保存工作表时的文件格式。
xlOpenXMLWorkbook = 51
xlExcel8 = 56
xlCSV = 6
xlCSVWindows = 23
xlCSVMSDOS = 24
xlAddIn = 18
xlTextMSDOS =21
xlTextWindows =20
xlWorkbookDefault =51
Set objArgs = WScript.Arguments
If objArgs.Count=0 Then
MsgBox "本脚本支持 xlsx/xls/csv 间的转换," &vbCrLf& "请将您要转换的文件拖到这个文件上!" &vbCrLf& "" &vbCrLf& "拖拽批量xls格式转换工具 By: HongQingFa"
MsgBox "根据脚本的名称进行对应转换," &vbCrLf& "如可将脚本命名为:" &vbCrLf& "Excel2Xlsx.vbs" &vbCrLf& "Excel2Xls.vbs" &vbCrLf& "Excel2csv.vbs" &vbCrLf& "-------" &vbCrLf& "-其它脚本名称-,则转换为 .csv"
End If
'
' 根据本脚本的名称进行对应转换,其它命名格式则转换为 .csv
scp_fn=UCase(wscript.scriptname)
For I = 0 To objArgs.Count - 1
FileUrl = objArgs(I)
' 根据脚本的名称进行对应转换,其它命名格式则转换为 .csv
' Call Word2Txt(FileUrl)
if scp_fn = UCase("Excel2Xlsx.vbs") Then
Call Excel2Xlsx(FileUrl)
' End If
' Call Word2Txt(FileUrl)
elseif scp_fn = UCase("Excel2Xls.vbs") Then
Call Excel2Xls(FileUrl)
' End If
' Call Word2Txt(FileUrl)
else
' if scp_fn = UCase("Excel2csv.vbs") Then
Call Excel2csv(FileUrl)
End If
Next
Function Excel2Xls(FileUrl)
FilePath = GetFileBaseName(FileUrl) & ".xls"
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open(FileUrl, False)
wb.SaveAs FilePath, xlExcel8
wb.Close True
End Function
Function Excel2Xlsx(FileUrl)
FilePath = GetFileBaseName(FileUrl) & ".xlsx"
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open(FileUrl, False)
wb.SaveAs FilePath, xlOpenXMLWorkbook
wb.Close True
End Function
Function Excel2csv(FileUrl)
FilePath = GetFileBaseName(FileUrl)
Set objExcel = CreateObject("Excel.Application")
Set wb = objExcel.Workbooks.Open(FileUrl, False)
for each s In wb.Sheets
s.Activate
s.SaveAs FilePath & "_" & s.name & ".csv" , xlCSV
Next
wb.Close True
End Function
' 取得文件基本名.
Function GetFileBaseName(ByVal sfilename)
n = InStrRev(sfilename, ".")
If n>1 Then
GetFileBaseName = Left(sfilename, n-1)
Else
GetFileBaseName = sfilename
End If
End Function
```