У меня есть рабочая книга, защищенная с помощью функции «Защитить рабочую книгу». Она была отправлена кому-то другому для изменения. Когда ее отправили обратно, она оказалась незащищенной, и когда я пытаюсь снова защитить ее, я получаю эту ошибку:
«Эта рабочая книга содержит макросы Excel 4.0 или модули Excel 5.0. Если вы хотите защитить этот документ паролем или ограничить доступ к нему, вам необходимо удалить эти макросы».
Я посмотрел, и в отредактированном файле нет новых макросов. Исходный файл содержал те же макросы, и его можно было защитить от записи, поэтому я не уверен, почему в измененном файле возникла проблема. Каковы распространенные причины и решения этой ошибки, и имеет ли смысл, чтобы в измененном файле была ошибка, а в оригинальном — нет?
решение1
Попробуйте нажать «Защитить книгу», а затем снять отметку «Защитить структуры и окна». Мне это помогло.
решение2
Конечно, следующее для тех, кто ищет решение этой проблемы. Я уверен, что автору поста уже давно все равно!
Единственные причины сообщения делятся на два основных класса:
- Тот, у кого файл был включен в целом в его копии Excel, использование макросов Excel 4 (и 5, но так их называют люди) и макространиц Excel 4 (и 5), и на самом деле мог создать буквальные макросы. Выглядят иначе, чем макросы VBA, конечно, но как только вы их увидите, вы очень быстро поймете.
Скорее всего, не.
- Тот, у кого был файл
used one of the viable (for this kind of use) Excel 4 macro commands
в Именованном диапазоне. Это ОЧЕНЬ вероятно, что произошло.
Поскольку макрокоманды Excel 4 ЯВЛЯЮТСЯ макрокомандами, их использование, будь то в буквальном макросе или в именованных диапазонах, заставит Excel рассматривать электронную таблицу как содержащую макросы. Примерно до начала 2021 года вы могли сохранить файл, в котором вы их использовали (в именованных диапазонах для этого момента, а не в реальных макросах), и во время сохранения Excel предупредит вас о необходимости сохранить файл как файл с поддержкой макросов (т. е.: .XLSM, а не .XLSX). Вы можете сказать «Нет!», и сохранение будет работать как обычно, и этот упрек больше никогда не возникнет. Открытие файла не дало никаких предупреждений, и формулы в именованных диапазонах работали просто отлично.
За последний год с небольшим он больше не позволяет этого делать. Если вы отказываетесь использовать формат .XLSM, функции Excel 4 исчезают при следующем открытии, а формулы ячеек, использующие именованные диапазоны, частью которых они были, уничтожаются. Если вы используете формат .XLSM, ну, многие люди не откроют вашу электронную таблицу. Но формулы, используемые именованными диапазонами, будут работать, если они это сделают.
Второе — это то, что вам, безусловно, нужно исследовать. Откройте Name Manager и начните изучать Named Ranges, просматривая их Refers to
содержимое (обычно формулу или диапазон). Вы ищете любое имя функции Excel 4.
Например, EVALUATE()
это замечательная функция из макроязыка Excel 4, и у нее нет абсолютно никакого современного эквивалента. Ни одного, или даже близкого. Если бы вы получили от меня таблицу и появилось это сообщение, это была бы функция, которую я мог бы использовать 7-8 раз из 10. (Конечно, я бы НИКОГДА не оставил такого явного знака, что я взломал защиту (самая простая вещь в мире) и сделал все, что мог, с вашей таблицей. Другие более беспечны или просто не заботятся, как ни прискорбно это говорить.)
В любом случае, ЛЮБУЮ функцию, которую вы заметили и которую не узнали, можно проверить одним из двух простых способов. Вы можете поискать функцию в Интернете. Если это одна из макрокоманд Excel 4, вы обязательно увидите этот факт в первом же или двух последующих ударах. Люди хотят, чтобы вы знали, что они знают что-то, чего вы не знаете, и это забавно, представьте, что вы удивляете людей.
Другой способ еще проще. Просто перейдите в ячейку и начните формулу с функцией, и пока вы вводите имя функции, посмотрите, Intellisense
появится ли справка или нет. Если нет, вы нашли одну из них (другой парень мог использовать больше). И закончите функцию, затем нажмите Enter и посмотрите, есть ли ошибки #NAME!
или что-то еще. Любые, которые делают эту ошибку, являются одними из них.
В этот момент, или, на самом деле, перед тем, как что-то делать, вы могли бы связаться с другим парнем и сказать: «Эй, ты делал что-то подобное?» Многие бы смутились и сказали: «О, эм, да...» и помогли бы вам убраться. Однако довольно многие бы замолчали и уставились на вас так, будто у вас только что выросли рога, так что:
Удалите все такие именованные диапазоны, если вы их не создавали. Это наиболее вероятно. И их использование в таблице, которую другой парень оставил лежать, не удастся, но вы в любом случае не хотели их. Запустите их и удалите или исправьте соответствующим образом. Это может быть просто с довольно заметным использованием и либо удалением, либо простыми исправлениями. Может быть довольно сложно, особенно если человек пытался убрать и оставил настоящий беспорядок.
Есть outside the question itself
ряд факторов, которые следует учитывать, прежде чем снова работать с этим человеком без надзора со стороны руководства за его ужасной работой, но это предназначено для тех, кто ищет более общую проблему и ищет способ двигаться вперед, и, вероятно, предпочитает неконфликтный путь вперед.
Наконец, это возможно, хотя и крайне маловероятно, учитывая, что он должен был как-то изменить его и вернуть, предположительно для общего пользования. Хотя он мог не знать о шагах MS по ужесточению использования этих команд (теперь компании могут полностью закрыть их через Центр управления безопасностью и корпоративные политики, что, хотя это и было возможно раньше, раньше программа этого активно не выдвигала), поскольку они наконец серьезно относятся к их отмене впервые за 25 лет, он, конечно, не мог подумать о том, чтобы продолжить свою работу по написанию настоящих макросов Excel 4. Но если бы он это сделал, они были бы размещены на специальных страницах, вставленных для них, и их было бы довольно легко обнаружить. Однако если бы он сделал что-то подобное, то, если говорить серьезно, его изменения совершенно непригодны для использования вне его компьютера, поскольку никто другой их не примет. Вернитесь к оригиналу, который ему отправили, и найдите другой способ изменить электронную таблицу.
Я говорю это как человек, который включил их в своей копии Excel, но который никогда не навязывал бы их другим как приемлемую работу. Они для моей собственной работы и редко используются. Определенно не для передачи другим.