Vba 宏导致无法读取的错误

Vba 宏导致无法读取的错误,vba,excel,Vba,Excel,打开带有宏的Excel 2007工作簿时,出现以下错误: Excel在{FILENAME}中发现无法读取的内容。是否要恢复此工作簿的内容 我不知道它是否可能是以下宏。我添加了ActiveSheet.Unprotect部分,并对.SaveAs TempFilePath&“\”&TempFileName&FileExtStr,FileFormat:=FileFormatNum部分进行了更改(尽管我不记得它们到底是什么) 此宏导出工作簿中的一张工作表,然后取消对其的保护,仅复制和粘贴值,然后将其关闭。

打开带有宏的Excel 2007工作簿时,出现以下错误:

Excel在{FILENAME}中发现无法读取的内容。是否要恢复此工作簿的内容

我不知道它是否可能是以下宏。我添加了
ActiveSheet.Unprotect
部分,并对
.SaveAs TempFilePath&“\”&TempFileName&FileExtStr,FileFormat:=FileFormatNum
部分进行了更改(尽管我不记得它们到底是什么)

此宏导出工作簿中的一张工作表,然后取消对其的保护,仅复制和粘贴值,然后将其关闭。此操作正常,但当我保存或重新打开主工作簿时,会出现“无法读取”错误

在Excel 97-2013中工作 图纸(“计算”)。选择 Dim FileExtStr作为字符串 Dim FileFormatNum尽可能长 将Sourcewb设置为工作簿 将WB设置为工作簿 Dim TempFilePath作为字符串 将文件名设置为字符串 应用 .ScreenUpdate=False .EnableEvents=False 以 设置Sourcewb=ActiveWorkbook '将工作表复制到新工作簿 活动表,收到 设置Destwb=ActiveWorkbook '确定Excel版本和文件扩展名/格式 用Destwb 如果Val(Application.Version)<12,则 “您使用的是Excel 97-2003 FileExtStr=“.xls”:FileFormatNum=-4143 其他的 “您使用的是Excel 2007-2013 FileExtStr=“.xlsx”:FileFormatNum=51 如果结束 以 '如果需要,请将工作表中的所有单元格更改为值 与Destwb.Sheets(1)一起使用 Application.CutCopyMode=False 活动表。取消保护 .细胞,复制 .Cells.paste特殊XLPaste值 .单元格(1)。选择 以 Application.CutCopyMode=False '保存新工作簿并关闭它 TempFilePath=图纸(“计算”).范围(“N5”).值 TempFileName=范围(“N4”)。值 用Destwb .SaveAs TempFilePath&“\”&TempFileName&FileExtStr,FileFormat:=FileFormatNum .Close SaveChanges:=False 以 MsgBox“您可以在”&TempFilePath中找到新文件 应用 .ScreenUpdate=True .EnableEvents=True 以 端接头 错误就在这里

If Val(Application.Version) < 12 Then
    'You use Excel 97-2003
    FileExtStr = ".xls": FileFormatNum = -4143

您试图打开的实际文件名是什么?单元格
N4
中有什么?
If Val(Application.Version) < 12 Then
    'You use Excel 97-2003
    FileExtStr = ".xls": FileFormatNum = -4143
50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb)
51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm)
56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls)