[英]Excel VBA, sorting, saving, closing, then opening
我有两个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格式和文件损坏的问题。 因此,对于大数据,我建议使用二进制格式(效率更高,并且产生的文件也更小)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.