Excel VBA,排序,保存,关闭,然后打开
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel VBA,排序,保存,关闭,然后打开相关的知识,希望对你有一定的参考价值。
我有两个Excel文件,file1.xlsm和file2.xlsm;我有一个数据表,另一个是其他的数据表。在第二个文件中,我还有一个打开第一个文件的按钮。
在第一个文件中,我有一个按钮,它使用A列作为键对所有数据进行排序,第二个按钮进行保存和退出。
我的排序代码:
Private Sub CommandButton2_Click()
Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row
With ActiveSheet.Sort
.SortFields.Add Key:=Range("A3"), Order:=xlAscending
.SetRange Range("A3:AF" & lRow)
.Header = xlNo
.Apply
End With
End Sub
问题是,在排序,保存并退出后,我无法通过VBA重新打开同一个工作簿(按钮什么都不做);我可以点击该文件,然后打开但是给我一个错误,即存在问题,但Excel可以恢复。错误日志中的错误:
在文件'C: file1.xlsm'中检测到错误 删除记录:从中排序 /xl/worksheets/sheet1.xml部分
要保存的按钮就是用SaveChanges:=True
关闭工作簿。
为什么会发生这种情况?如何纠正?
答案
这个错误
在文件中检测到错误
表示您的文件已损坏。
在许多情况下,将文件转换为二进制.xlsb
格式会修复该文件。之后,您可以再次以XML格式.xlsm
保存。
然而,我经常遇到XML格式和文件损坏的问题。因此,对于大数据,我建议使用二进制格式(它更有效,并且产生更小的文件)。
以上是关于Excel VBA,排序,保存,关闭,然后打开的主要内容,如果未能解决你的问题,请参考以下文章