我有一个宏来将活动工作表保存到新工作簿中。但是,它想要将其保存为 .xlsx 格式,而我需要将其保存为 .xls 格式。
Private Sub SaveBarList_Click()
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Copy
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
Dim strDir As String
'Show standard save as dialogue box
With Application.FileDialog(msoFileDialogSaveAs)
If .Show = -1 Then
strDir = .SelectedItems(1)
End If
End With
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=Application.GetSaveAsFilename, FileFormat:=-4143
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
xlWorkbookNormal
代替值(-4143),这样更易读。话虽如此,你用的数字是正确的。你尝试过从文件名中去掉额外的“x”,然后在Excel中打开文件吗?我猜你的FileDialog会返回一个带有“.xlsx”扩展名的完整名称,即使格式正确,Excel也只是按照给定的名称保存它。如果你可以用“.xls”扩展名打开它,在保存之前改变扩展名。 - FreeManActiveWorkbook.SaveAs "C:\Users\YourUserName\Desktop\FILENAME.xlsm",fileformat:=57
。 - BruceWayne57
看起来是Mac特定的数字(没有Win Excel2011),而且OP也没有具体说明,所以你可能是正确的。57
的Win版本是56
,它将是xlExcel8
,这也可能有效。 - FreeManActiveWorkbook.Close
End Sub` - Mark Smith