VBA另存为未定义的文件类型

时间:2015-07-06 08:45:28

标签: excel-vba vba excel

我有一个简单的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

1 个答案:

答案 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

如果出现问题

如果您遇到上述问题,请执行以下操作:

  1. 转到Developer标签
  2. 点击录制宏
  3. 以所需格式手动保存文件
  4. 点击停止录制
  5. 打开您的VBA项目并获取生成的代码