繁体   English   中英

Excel VBA,排序,保存,关闭然后打开

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM