关于EXCEL中宏的问题
来源:百度知道 编辑:UC知道 时间:2024/05/18 03:38:47
EXCEL中有三个Sheet 分别是Sheet1,Sheet2,Sheet3,现要将三个Sheet保存为三个CSV文件,且文件名要自己输入。
请问这宏应该怎么写呢?
望高手解答,不甚感激!
不知道你是要自己手动输入文件名还是要 Excel 自动生成文件名,现分两种情况分别列出。新建一模块,将下列代码复制到模块中:
1、提示手动输入文件名,默认提示的文件名为要保存的 sheet 的名字
Public Sub SaveAsCSV() '将 EXCEL 中当前活动工作簿中的所有工作表保存为单独的CSV文件。
Dim fName As String
Dim ws As Worksheet
Dim xlBook As Workbook
Set xlBook = ActiveWorkbook
For Each ws In ActiveWorkbook.Worksheets
Do
fName = Application.GetSaveAsFilename(InitialFileName:=ws.Name, FileFilter:="CSV (逗号分隔)(*.CSV),*.CSV")
Loop Until fName <> "False"
ws.Copy
ActiveSheet.SaveAs Filename:=fName, FileFormat:=xlCSV
ActiveWorkbook.Close True '如果要保持另存的文件为打开状态,则删除此句。
Next ws
xlBook.Activate
Set xlBook = Nothing
End Sub
2、如果要 Excel 自动生成跟 Sheet 表的名字一样的文件名,则:
将上面代码中的:
Do
fName = Application.GetSaveAsFilename(InitialFileName:=ws.Name, FileFilter:="CSV (逗号分隔)(*.CSV),*.CSV")
Loop Until fName <> &quo