簡體   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