gpt4 book ai didi

Excel宏将xlsx转换为xls

转载 作者:行者123 更新时间:2023-12-02 07:21:39 25 4
gpt4 key购买 nike

我的文件夹中有一堆文件,它们都是 xlsx 格式,我需要将它们转换为 xls 格式。这将每天进行。

我需要一个宏,它将在文件夹中循环并将文件从 xlsx 转换为 xls,而不更改文件名。?

这是我用来循环的宏

Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook

Pathname = ActiveWorkbook.Path & "C:\Users\myfolder1\Desktop\myfolder\Macro\"
Filename = Dir(Pathname & "*.xls")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub

最佳答案

您缺少的是,您需要调用 wb.SaveAs ,而不是调用 wb.Close SaveChanges=True 以其他格式保存文件。使用新文件 format和名字。

您说您想在不更改文件名的情况下转换它们,但我怀疑您确实想使用相同的基本文件名保存它们,但使用 .xls 扩展名。因此,如果工作簿名为 book1.xlsx,您希望将其另存为 book1.xls。要计算新名称,您可以执行简单的 Replace()在旧名称上将 .xlsx 扩展名替换为 .xls

您还可以通过设置wb.CheckCompatibility来禁用兼容性检查器。 ,并通过设置 Application.DisplayAlerts 抑制警报和消息.

Sub ProcessFiles()
Dim Filename, Pathname, saveFileName As String
Dim wb As Workbook
Dim initialDisplayAlerts As Boolean

Pathname = "<insert_path_here>" ' Needs to have a trailing \
Filename = Dir(Pathname & "*.xlsx")
initialDisplayAlerts = Application.DisplayAlerts
Application.DisplayAlerts = False
Do While Filename <> ""
Set wb = Workbooks.Open(Filename:=Pathname & Filename, _
UpdateLinks:=False)
wb.CheckCompatibility = False
saveFileName = Replace(Filename, ".xlsx", ".xls")

wb.SaveAs Filename:=Pathname & saveFileName, _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

wb.Close SaveChanges:=False
Filename = Dir()
Loop
Application.DisplayAlerts = initialDisplayAlerts
End Sub

关于Excel宏将xlsx转换为xls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com