将多个Excel工作表转换为.csv


-1

我发现这个宏用于将工作簿中的多个excel工作表转换为单个命名的.csv文件,但不知道如何从转换的文件名中删除工作簿名称。我确信这很简单,但我对VBA一无所知。

Sub exportcsv()
Dim ws As Worksheet
Dim path As String

path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", leFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next
End Sub

1
你的意思是工作表名称?那是& "_" & ws.Name &一部分。现在删除它,你将有3个文件3张,所有文件在同一文件夹中相同。听起来不是一个好主意。
Mathieu Guindon 2016年

当我运行宏时,它命名转换后的文件“原始文件名”_“工作表名称”。我需要它只是将它们命名为sheet.csv
phantasm79

Answers:


1

更改

ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv"

ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.path & "\" & ws.Name & ".csv"

这让我很接近,但不是在我转换的同一个文件夹中。也许是因为我正在服务器上工作?它将转换后的文件丢弃在我的服务器用户目录中。
phantasm79 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.