关于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