Как сохранить и закрыть таблицу Excel после простоя в Excel 2010

Как сохранить и закрыть таблицу Excel после простоя в Excel 2010

У меня Excel 2010. Я сталкиваюсь с ситуациями, когда люди уходят с работы и оставляют книгу Excel на общем файловом сервере открытой исключительно; в результате другие пользователи не могут редактировать книгу. Как мне смягчить эту проблему?

решение1

Рекомендуемое решение вашей проблемы — разрешить нескольким пользователям редактировать таблицу Excel одновременно. СмотретьО совместных рабочих тетрадяхв справке Excel для получения подробной информации. Суть этого подхода заключается в том, чтобы перейти на вкладку «Обзор» на ленте Excel, а затем нажать кнопку «Поделиться книгой» в разделе «Изменения».

В любом случае, попробуйте использовать функцию «Общие рабочие книги» в качестве основного решения. Читайте дальше, только если вы уже пробовали Общие рабочие книги и не смогли удовлетворить свои потребности.

Если по какой-то причине это не сработает в вашей ситуации (некоторые функции рабочей книги несовместимы с общими рабочими книгами), попробуйте этоVBA-решение:


По моему скромному мнению, это крайне неразумно с точки зрения защиты ваших данных.

Представьте себе ситуацию, когда пользователь случайно удалил много данных и сидит, обхватив голову руками, размышляя, что делать и когда признаться. Теперь мы все знаем, что вы можете просто закрыть книгу, не сохраняя изменения, и мы в безопасности, но при рассмотрении следующего шага этот код выполняется, и теперь у вас будет очень плохой день. Сказав это, попробуйте это:-

ALT+F11, чтобы открыть редактор VB. Дважды щелкните «ThisWorkbook» и вставьте первые 2 модуля справа.

Private Sub Workbook_Open()
    StartTimer
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    StartTimer
End Sub

Теперь щелкните правой кнопкой мыши по модулю «ThisWorkbook», вставьте его и вставьте этот код. Сохраните, закройте и снова откройте книгу. Через 15 минут бездействия она сохранится и закроется автоматически.

Const idleTime = 900 'seconds
Dim Start
Sub StartTimer()
    Start = Timer
    Do While Timer < Start + idleTime
        DoEvents
    Loop
    Application.DisplayAlerts = False
    ActiveWorkbook.Close SaveChanges:=True
    Application.DisplayAlerts = True
End Sub

Связанный контент