Excel宏从工作簿工作表创建csv文件windows弹出窗口问题
我在将excel转换为csv文件时遇到问题。我的用例是编写一个宏,将每个工作簿工作表转换为csv文件,并将它们压缩为单个文件。 所以我的代码是这样的 '原始工作簿.Activate '对于图纸数量,请将每个图纸转换为其自己的CSV文件Excel宏从工作簿工作表创建csv文件windows弹出窗口问题,excel,vba,macos,Excel,Vba,Macos,我在将excel转换为csv文件时遇到问题。我的用例是编写一个宏,将每个工作簿工作表转换为csv文件,并将它们压缩为单个文件。 所以我的代码是这样的 '原始工作簿.Activate '对于图纸数量,请将每个图纸转换为其自己的CSV文件 For Counter = SHCOUNT + 1 To Sheets.Count 'Export as CSV to the root folder Set wks = ActiveWorkbook.Worksheets(Counter)
For Counter = SHCOUNT + 1 To Sheets.Count
'Export as CSV to the root folder
Set wks = ActiveWorkbook.Worksheets(Counter)
wks.Copy 'to a new workbook
Set newWks = ActiveSheet
With newWks
fileSaveName = Application.GetSaveAsFilename(newWks.Name, _
fileFilter:="CSV Files (*.csv), *.csv")
'ActiveWorkbook.SaveAs (fileSaveName)
.SaveAs Filename:=fileSaveName, FileFormat:=xlCSV
ZipNAme = newWks.Name
If fileSaveName <> False Then
'newWks.Delete
'MsgBox "Save as " & fileSaveName
End If
.Parent.Close Savechanges:=False
End With
''Add the created CSV file to the ZIP file
Set oapp = CreateObject("Shell.Application")
oapp.Namespace(FolderName).CopyHere fileSaveName
Next Counter
计数器=SHCOUNT+1到工作表。计数
'作为CSV导出到根文件夹
设置wks=ActiveWorkbook.工作表(计数器)
工作。将“复制”到新工作簿
设置newWks=ActiveSheet
有新作品
fileSaveName=Application.GetSaveAsFilename(newWks.Name_
fileFilter:=“CSV文件(*.CSV),*.CSV”)
'ActiveWorkbook.SaveAs(fileSaveName)
.SaveAs文件名:=文件名,文件格式:=xlCSV
ZipNAme=newWks.Name
如果fileSaveName为False,则
'newWks.Delete
'MsgBox“另存为”&文件名
如果结束
.Parent.Close Savechanges:=False
以
''将创建的CSV文件添加到ZIP文件
设置oapp=CreateObject(“Shell.Application”)
名称空间(FolderName).CopyHere文件名
下一个柜台
但现在我面临着一个问题,这段代码,我在excel中有大约20张工作表,每一张工作表都会出现windows saveas弹出窗口,我点击了20次save来完成整个工作
我对VB中的编码非常陌生。有人能帮我解决这个问题吗?
我必须在没有任何“另存为”弹出窗口的情况下继续操作,因为我事先给出了文件名
谢谢,
B1
希望这能有所帮助,但不能保证它对你有用,但它是让事情走上正确道路的另一种选择。我自己也是VBA新手:)您将获得每个文件的弹出窗口,因为您正在循环中调用
应用程序.GetSaveAsFilename
!还有别的办法吗?还是解决这个问题的办法?
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", FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next
End Sub