Показать полную графическую версию : Не корректно работает макрос в excel
В университете дали практическое задание в экселевском файле. При открытии пишет: "запуск активного содержимого отключен". Когда нажимаю включить, то все страницы закрываются и ничего не происходит. Подскажите, пожалуйста, это просто не рабочий файл, чего то не хватает для него или я что-то не так делаю? Пробовал в 2007 и 2013 версиях открывать.
Когда нажимаю включить, то все страницы закрываются и ничего не происходит. »
Потому что в коде тупо записана при открытии Рабочей книги проверка на текущую дату по сравнению с заданной в самой Рабочей книге:
Private Sub Workbook_Open()
td = Date
dd = Sheets("начало").Range("AX1")
If td > dd Then
Sheets("задание").Visible = True
Sheets("задание").Activate
Sheets("задание").Unprotect ("migel2")
Sheets("задание").Select
Cells.Delete
Sheets("задание").Range("A1").Select
Sheets("проверка").Visible = True
Sheets("проверка").Activate
Sheets("проверка").Unprotect ("migel2")
Sheets("проверка").Select
Cells.Delete
Sheets("проверка").Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
End Sub
В AX1 на Рабочем листе «начало» стоит дата 1 февраля 2017 года. Если текущая дата больше заданной — макрос удаляет всё содержимое листов «задание» и «проверка», затем сохраняет Рабочую книгу. Если Вы, как пишете, хотя бы раз разрешили исполнение макросов для этой Рабочей книги после 1 февраля 2017 года, то что-либо пытаться искать в ней уже поздно. Вам нужен оригинальный файл. Если найдёте — выкладывайте, посмотрим.
Вот оригинальный файл. Экселевские файлы такого размера не пропускает. Получается самый простой способ - это на компьютере ставить время до 1 февраля, чтобы поработать с ним? Или есть еще варианты?
Ещё есть вариант внести в указанную ячейку дату будущего периода. Или просто закомментировать эту проверку с самоликвидацией :).
Но суть не в этом. Дело в том, что и в том файле, что Вы выложили теперь, не всё на месте. В частности, на листе «задание» отсутствует кнопка CommandButton1, которая должна вызывать макрос ZZ. А почему? А потому, что в коде присутствует и такое:
ActiveSheet.Shapes("CommandButton1").Select
Selection.Delete
То есть, выложенный Вами вариант — уже полученный кем-то результат, а не исходный файл.
P.S. Руки пообрывал бы за такой код. А потом пришил бы обратно задом наперёд.
P.P.S. Видимо, это уже кто-то проделал до меня.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.