Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Не корректно работает макрос в excel (http://forum.oszone.net/showthread.php?t=325947)

Maddrag 14-04-2017 17:01 2729293

Не корректно работает макрос в excel
 
Вложений: 1
В университете дали практическое задание в экселевском файле. При открытии пишет: "запуск активного содержимого отключен". Когда нажимаю включить, то все страницы закрываются и ничего не происходит. Подскажите, пожалуйста, это просто не рабочий файл, чего то не хватает для него или я что-то не так делаю? Пробовал в 2007 и 2013 версиях открывать.

Iska 14-04-2017 17:45 2729307

Цитата:

Цитата Maddrag
Когда нажимаю включить, то все страницы закрываются и ничего не происходит. »

Потому что в коде тупо записана при открытии Рабочей книги проверка на текущую дату по сравнению с заданной в самой Рабочей книге:
Скрытый текст
Код:

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 года, то что-либо пытаться искать в ней уже поздно. Вам нужен оригинальный файл. Если найдёте — выкладывайте, посмотрим.

Maddrag 14-04-2017 19:55 2729343

Вложений: 1
Вот оригинальный файл. Экселевские файлы такого размера не пропускает. Получается самый простой способ - это на компьютере ставить время до 1 февраля, чтобы поработать с ним? Или есть еще варианты?

Iska 14-04-2017 23:31 2729402

Ещё есть вариант внести в указанную ячейку дату будущего периода. Или просто закомментировать эту проверку с самоликвидацией :).

Но суть не в этом. Дело в том, что и в том файле, что Вы выложили теперь, не всё на месте. В частности, на листе «задание» отсутствует кнопка CommandButton1, которая должна вызывать макрос ZZ. А почему? А потому, что в коде присутствует и такое:
Код:

    ActiveSheet.Shapes("CommandButton1").Select
    Selection.Delete

То есть, выложенный Вами вариант — уже полученный кем-то результат, а не исходный файл.

P.S. Руки пообрывал бы за такой код. А потом пришил бы обратно задом наперёд.
P.P.S. Видимо, это уже кто-то проделал до меня.


Время: 10:19.

Время: 10:19.
© OSzone.net 2001-