macros正在改变标签名称

我有一个文件夹中的excel文件。 我想将每个excel文件(只有sheet1)转换为csv文件。 我已经通过使用下面的macros来做到这一点。 我不能在代码中更改标签名称与文件名中的哪一行。 我不想更改标签名称。

Option Explicit Sub SaveasCSV() Dim bookList As Workbook Dim createObj As Object, dirObj As Object, filesObj As Object, everyObj As Object Application.ScreenUpdating = False Set createObj = CreateObject("Scripting.FileSystemObject") ChDir "C:\Users\puttaraju.d\Desktop\Phase1" Set dirObj = createObj.GetFolder("C:\Users\puttaraju.d\Desktop\Phase1") Set filesObj = dirObj.Files For Each everyObj In filesObj Set bookList = Workbooks.Open(everyObj) ActiveWorkbook.SaveAs FileFormat:=xlCSV, CreateBackup:=False bookList.Close Next End Sub 

对于每个文件,popup询问是否要保存文件中的更改。 我不想改变当前文件。 我如何添加代码行来做到这一点。

这是行:

 ActiveWorkbook.SaveAs FileFormat:=xlCSV 

尝试手动将工作簿保存为CSV。 您将看到它将更改选项卡名称以匹配文件名(不带.csv扩展名)。

您可以使用SaveCopyAs保存您的worbook的临时副本,然后打开该副本,并将其另存为CSV(并closures并删除它)。

这是我的一个旧程序,采用不同的方法做类似的事情。 它将工作表保存为文本:工作表被复制到另一个工作簿,然后该工作簿被保存为文本。 适应你的需要。

 Sub SaveSheetAsTextFile(sourceSheet As Worksheet, textFilePath As String) Dim oldScreenUpdating As Boolean Dim thisbook As Workbook Dim tempbook As Workbook oldScreenUpdating = Application.ScreenUpdating Application.ScreenUpdating = False ' Copy sheet to a new temp workbook Set thisbook = ActiveWorkbook Set tempbook = Workbooks.Add thisbook.Activate sourceSheet.Cells.Copy tempbook.ActiveSheet.Range("A1") ' Save as text file tempbook.ActiveSheet.SaveAs filename:=textFilePath, _ FileFormat:=xlTextPrinter 'FileFormat:=xlTextWindows ' this puts text cells in "quotes"! tempbook.Close SaveChanges:=False Application.ScreenUpdating = oldScreenUpdating End Sub 

用法示例:

 SaveSheetAsTextFile Sheet1, "C:\myfile.txt"