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