我有一个简单的VBA,它在循环使用不同的名称时多次运行相同的报告,将每个报告保存为单独的工作簿。
一切正常,但其中一个报告始终保存为“未定义”。文件类型,然后我必须手动将其更改为excel。所有其他人保存得很好,所以我无法弄清楚这个问题。我尝试过使用SaveAs FileFormat,但他们都没有解决这个问题。
For Each c In MCH
Detail.Range("B8:E10000").ClearContents
Data.Rows("4:4").AutoFilter Field:=2, Criteria1:= _
c.Value
lr = Data.Cells(Rows.Count, "E").End(xlUp).Row
Data.Range("E5:H" & lr).Copy Detail.Range("B8")
Sheets("Detail").Calculate
Set name = Detail.Range("B4")
Sheets("Detail").Copy
ActiveSheet.Cells.Copy
ActiveSheet.Range("A1").PasteSpecial Paste:=xlValues
ActiveSheet.Range("A1").Select
Set wb = ActiveWorkbook
wb.SaveAs ThisWorkbook.Path & "\" & name
wb.Close False
Next
答案 0 :(得分:1)
您没有选择文件格式。
Set wb = ActiveWorkbook
wb.SaveAs ThisWorkbook.Path & "\" & name
<强> XSLX 强>
ActiveWorkbook.SaveAs Filename:= ThisWorkbook.Path & "\" & name, FileFormat:= xlOpenXMLWorkbook, CreateBackup:=False
文字文件(txt)
ActiveWorkbook.SaveAs Filename:= ThisWorkbook.Path & "\" & name, FileFormat:= xlUnicodeText, CreateBackup:=False
对于其他 FileFormat ,请参阅此枚举:
https://msdn.microsoft.com/en-us/library/bb241279(v=office.12).aspx
如果您遇到上述问题,请执行以下操作:
Developer
标签