Excel 通过VBA将.xls文件保存为.xlsx文件
我将.xls文件另存为.xlsx 当我试图打开转换后的.xls文件时,它说这本书可能已损坏,但当我手动打开时,它可以工作Excel 通过VBA将.xls文件保存为.xlsx文件,excel,vba,Excel,Vba,我将.xls文件另存为.xlsx 当我试图打开转换后的.xls文件时,它说这本书可能已损坏,但当我手动打开时,它可以工作 Sub LoopThroughFiles() Dim xFd As FileDialog Dim xFdItem As Variant Dim xFileName As String Set xFd = Application.FileDialog(msoFileDialogFolderPicker) If xFd.Show = -1
Sub LoopThroughFiles()
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xl*")
Do While xFileName <> ""
With Workbooks.Open(xFdItem & xFileName)
'-------------HERE GOES MY CODE so it's not worth putting it---------------------
Dim IntialName As String
Dim sFileSaveName As Variant
IntialName = "Sample"
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, _
filefilter:="Libro de Excel (*.xls), *.xls")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End With
xFileName = Dir
Loop
End If
End Sub
Sub-LoopThroughFiles()
Dim xFd As文件对话框
Dim xFdItem作为变量
Dim xFileName作为字符串
设置xFd=Application.FileDialog(msoFileDialogFolderPicker)
如果xFd.Show=-1,那么
xFdItem=xFd.SelectedItems(1)和Application.PathSeparator
xFileName=Dir(xFdItem&“*.xl*”)
当xFileName“”时执行此操作
打开工作簿(xFdItem&xFileName)
’------我的代码在这里,所以不值得放进去---------------------
将初始名称设置为字符串
Dim sFileSaveName作为变量
initialname=“样本”
sFileSaveName=Application.GetSaveAsFilename(InitialFileName:=InitialName_
文件过滤器:=“Libro de Excel(*.xls),*.xls”)
如果sFileSaveName为False,则
ActiveWorkbook.SaveAs sFileSaveName
如果结束
以
xFileName=Dir
环
如果结束
端接头
如何将.xls文件保存到.xlsx中?您的
fileFilter
用于xls
有什么原因吗?似乎您希望它是.xlsx
?当我放入.xlsx时,它会正确保存,但当我尝试打开它时,数据或书籍的错误可能会被损坏@bigben还会在活动工作簿.SaveAs
行中指定文件格式
。或者您可以使用enum成员xlOpenXMLWorkbook
代替硬编码51
。谢谢@BigBen我在你的帮助下解决了它。