Excel VBA, сортировка, сохранение, закрытие, открытие - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть два файла 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 part

Кнопка для сохранения - это просто закрытие книги с помощью SaveChanges:=True.

Почему это происходит и как это можно исправить?

1 Ответ

0 голосов
/ 27 ноября 2018

Эта ошибка

В файле обнаружены ошибки

означает, что ваш файл поврежден.

Во многих случаях преобразование файла в двоичный формат .xlsb восстанавливает файл.После этого вы можете сохранить в формате XML .xlsm.

Тем не менее, у меня часто возникали проблемы с форматом XML и повреждением файлов.Поэтому для больших данных я рекомендую использовать двоичный формат (он немного более эффективен и создает файлы меньшего размера).

...