Я работаю над документом excel для составления расписаний сотрудников для моей работы с использованием excel 2010. Одной из проблем, которые мы постоянно имеем, является то, что пользователь может иметь рабочая книга открыта и забудет закрыть ее, прежде чем они уйдут. Они все еще регистрируются на компьютере (общий компьютер), но этот профиль пользователя заблокирован, а другой пользователь входит в систему. Используемый файл хранится на сетевом диске, поэтому его можно заблокировать на разных компьютерах или на том же компьютере, текущий пользователь, который хочет получить к нему доступ, использует. Конечно, если книга была оставлена открытой, новый пользователь не может вносить изменения. Мне было интересно, есть ли способ добавить код в документ, чтобы я мог поместить кнопку, которая закроет экземпляр рабочей книги, который все еще открыт другим пользователем, возможно, предоставив текущему пользователю возможность сохранить его или нет, затем закройте и откройте книгу, которую открыл текущий пользователь, чтобы получить доступ к изменениям? Дайте мне знать, если мне нужно что-то разъяснить для вас. Спасибо!Закройте книгу excel, открытую другим пользователем на том же компьютере, используя VBA
ответ
Вы можете сделать некоторые трюк. Основная идея заключается в том, чтобы закрыть книгу, если никто не изменил выбор ячеек (т. Е. Выберите A1
или другую ячейку) в примере в течение 10 минут.
1) добавить этот код в модуль VBA:
Public lastSelectionChange As Date
Sub closeWB()
If DateDiff("n", lastSelectionChange, Now) > 10 Then
ThisWorkbook.Close SaveChanges:=True
Else
Application.OnTime Now + TimeSerial(0, 10, 0), "closeWb"
End If
End Sub
2) добавить следующий код в ThisWorkbook
модуля:
Private Sub Workbook_Open()
lastSelectionChange = Now
closeWB
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
lastSelectionChange = Now
End Sub
Функция closeWb
будет вызывается каждые 10 минут (Application.OnTime Now + TimeSerial(0, 10, 0), "closeWb"
это сделать) и проверьте, было ли последнее изменение выбора более 10 минут назад. Если да, тогда закройте wb.
Это будет очень серьезная проблема безопасности в операционной системе. Возможность взаимодействия с другими файлами пользователей и запущенными программами.
Однако, вы могли бы иметь текущий пользователь сделать «Save-как» или создать копию и продолжить оттуда
Да, я подумал, что это может быть длинный выстрел, но я думал, что все равно спрошу. Я надеялся избежать метода save-as, потому что это очень хлопотно. В большинстве случаев человек, который блокирует книгу, - это тот, кому нет необходимости редактировать его, возможно, он просто просматривал данные. – Jason247
- 1. VBA - Активировать открытую книгу
- 2. excel vba закрыть книгу на другом компьютере
- 3. Ссылка на открытую рабочую книгу Excel
- 4. Вызов открытую книгу в VBA
- 5. Используя книгу с VBA, чтобы открыть сохраненную книгу, измените эту ранее существовавшую книгу, сохраните и закройте.
- 6. Закройте файл Adobe Acrobat, открытый другим пользователем на другом компьютере (в той же сети)
- 7. не удалось закрыть открытую книгу excel
- 8. Закройте книгу, если в Excel нет активности
- 9. Закройте открытую таблицу
- 10. Хотелось бы, чтобы Excel VBA ссылался на открытую книгу, начиная с
- 11. Сохраните открытую книгу с другим именем файла (SaveAs)
- 12. Экспорт вывода из R в открытую книгу Excel
- 13. Mac Office 2011 VBA Word ссылается на уже открытую книгу Excel
- 14. Закройте книгу в excel с именем, меняющимся еженедельно
- 15. Клиент - Сервер на том же компьютере, используя UDP
- 16. Как ссылаться на другую (открытую или закрытую) книгу и извлекать значения обратно в VBA? - Excel 2007
- 17. Как активировать книгу, открытую с использованием имени книги в VBA
- 18. Запрос VBA ADO на книгу Excel
- 19. Копирование внешнего листа в текущую книгу, Excel VBA
- 20. Настройка netem на том же компьютере
- 21. Откройте книгу из другой книги, не открывая открытую книгу?
- 22. Открыть книгу с помощью макроса, показать/отобразить открытую книгу
- 23. Как я могу закодировать, чтобы закрыть открытую книгу, используя ее путь к каталогу вместо имени, используя vba в excel?
- 24. VBA Открыть Excel, когда файл используется другим пользователем
- 25. Excel VBA: получить книгу, связанную с диапазоном
- 26. Услуги WCF на том же компьютере
- 27. тестирование клиент-сервера на том же компьютере
- 28. xlrd - добавить данные в уже открытую книгу
- 29. VBA - Excel - Сохранить как и удалить оригинальную книгу
- 30. как вызвать открытую powerpoint из excel vba
Спасибо! Закрытие таймера - это не совсем то, что я искал, но я думаю, что его ближайшая вещь есть. Я ценю помощь. – Jason247