Как правило, вам необходимо защитить весь рабочий лист, чтобы заблокировать ячейки от редактирования. Есть ли способ заблокировать ячейки без защиты всего рабочего листа? Эта статья рекомендует вам метод VBA.
Блокируйте указанные ячейки без защиты всего рабочего листа с помощью VBA
Блокируйте указанные ячейки без защиты всего рабочего листа с помощью VBA
Предположим, вам нужно заблокировать ячейки A3 и A5 на текущем листе, следующий код VBA поможет вам добиться этого, не защищая весь лист.
1. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню.
2. Затем скопируйте и вставьте приведенный ниже код VBA в окно кода. Смотрите скриншот:
Код VBA: блокировка указанных ячеек без защиты всего рабочего листа
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Row = 3 Or Target.Row = 5 Then
Beep
Cells(Target.Row, Target.Column).Offset(0, 1).Select
End If
End If
End Sub
Внимание: В коде Колонка 1, Ряд = 3 и Ряд = 5 указывает, что ячейки A3 и A5 на текущем листе будут заблокированы после запуска кода. Вы можете изменить их по своему усмотрению.
3. нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.
Теперь ячейки A3 и A5 заблокированы на текущем листе. Если вы попытаетесь выбрать ячейку A3 или A5 на текущем листе, курсор автоматически переместится в правую соседнюю ячейку.
Статьи по теме:
- Как заблокировать сразу все ссылки на ячейки в формулах в Excel?
- Как заблокировать или защитить ячейки после ввода данных или ввода в Excel?
- Как заблокировать или разблокировать ячейки на основе значений в другой ячейке в Excel?
- Как заблокировать изображение / изображение в ячейке или внутри нее в Excel?
- Как заблокировать ширину и высоту ячейки от изменения размера в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (22)
Оценок пока нет. Оцените первым!
Marshal Пользователь Сообщений: 83 |
#1 18.10.2016 02:18:33 Доброго времени. Но данная защита снимается нажатием правой кнопкой на листе «Снять защиту листа». Всем спасибо
|
||
vikttur Пользователь Сообщений: 47199 |
#2 18.10.2016 02:22:31
|
||
Marshal Пользователь Сообщений: 83 |
Спасибо за ответ. с этим я и воююю |
k61 Пользователь Сообщений: 2441 |
#4 18.10.2016 02:51:08 Прикрутка:
|
||
Marshal Пользователь Сообщений: 83 |
#5 18.10.2016 04:25:06 Спасибо большое, прикрутил.
|
||
Users entering data into the wrong cells or changing existing formulas can make data collection a tedious process. However, you can prevent users from going outside the intended boundaries by disabling certain sections of your workbook. In this article, we’re going to show you how to lock a cell in Excel formula using VBA.
Protection
Worksheets are objects in a workbook’s worksheet collection and they have Protect and Unprotect methods. These methods determine the protected status of a worksheet as the name suggests. Both methods can get accept other optional arguments. The first is the password argument. By setting a string for the parameter argument, you can lock your worksheets with a password. Below is a breakdown.
Lock Cells
Important note: Protecting a sheet does not lock individual cells! The cells you want to lock should be marked as Locked too. A cell can be marked as Locked, and/or Hidden, in two ways:
- Via user interface
- Via VBA
The User Interface method requires using the Format Cells dialog. Select a cell or a range of cells, and press Ctrl + 1 to open this menu and go to the Protection tab. Use the corresponding checkboxes to activate properties.
The second method is doing this via VBA code. Every cell and range can be made Locked and FormulaHidden properties. Set these two as True or False to change their status.
Activecell.Locked = True Activecell.FormulaHidden = True
You can use the Hidden status to hide your formulas as well.
Detect Cells with Formulas
If you just need to lock only cells with formulas, you need to first identify cells that have formulas. The cells and ranges have a HasFormula property, which makes them read only. It returns a Boolean value based on whether the cell or range has a formula. A simple loop can be used to detect cells in a given range that contain formula.
For Each rng In ActiveSheet.Range("B4:C9") If rng.HasFormula Then rng.Locked = True Else rng.Locked = False End If Next rng
To run this code, you need to add a module into the workbook or the add-in file. Copy and paste the code into the module to run it. The main advantage of the module method is that it allows saving the code in the file, so that it can be used again later. Furthermore, the subroutines in modules can be used by icons in the menu ribbons or keyboard shortcuts. Remember to save your file in either XLSM or XLAM format to save your VBA code.
Lock cells and protect a worksheet
The code example below checks every cell in the range «B4:C9» from the active worksheet. If a cell has a formula, it locks the cell. Otherwise, the cell becomes or remains unlocked.
Sub ProtectCellsWithFormulas() For Each rng In ActiveSheet.Range("B4:C9") If rng.HasFormula Then rng.Locked = True Else rng.Locked = False End If Next rng ActiveSheet.Protect "pass" End Sub
Содержание
- Метод Worksheet.Protect (Excel)
- Синтаксис
- Параметры
- Замечания
- Поддержка и обратная связь
- How to Lock the data in a cell in excel using vba
- 5 Answers 5
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Как заблокировать ячейку vba excel
- Как заблокировать и разблокировать указанные ячейки с помощью флажка в Excel?
- Как заблокировать ячейку vba excel
Метод Worksheet.Protect (Excel)
Защищает лист, чтобы его нельзя было изменить.
Синтаксис
expression. Защита (Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables )
Выражение Переменная, представляющая объект Worksheet .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Password | Необязательный | Variant | Строка, указывающая пароль для листа или книги с учетом регистра. Если этот аргумент опущен, можно снять защиту листа или книги, не используя пароль. В противном случае необходимо указать пароль для отмены защиты листа или книги. Если вы забыли пароль, вы не сможете снять защиту листа или книги. |
Используйте надежные пароли, содержащие строчные и прописные буквы, цифры и знаки. В слабых паролях эти элементы не комбинируются. Надежный пароль: Y6dh!et5. Слабый пароль: House27. Длина паролей должна быть не меньше 8 символов. В парольной фразе лучше использовать 14 или более символов.
Очень важно запомнить пароль. Если вы его забудете, корпорация Майкрософт не сможет его восстановить. Храните пароли, записанные на бумаге, в безопасном месте вдали от информации, которую они защищают. DrawingObjects Необязательный Variant Значение true для защиты фигур. Значение по умолчанию — True. Contents Необязательный Variant Значение true для защиты содержимого. Для диаграммы это защищает всю диаграмму. Для листа это защищает заблокированные ячейки. Значение по умолчанию — True. Scenarios Необязательный Variant Значение true для защиты сценариев. Этот аргумент действителен только для листов. Значение по умолчанию — True. UserInterfaceOnly Необязательный Variant Значение true для защиты пользовательского интерфейса, но не макросов. Если этот аргумент опущен, защита применяется как к макросам, так и к пользовательскому интерфейсу. AllowFormattingCells Необязательный Variant Значение True позволяет пользователю форматировать любую ячейку на защищенном листе. Значение по умолчанию — False. AllowFormattingColumns Необязательный Variant Значение True позволяет пользователю форматировать любой столбец на защищенном листе. Значение по умолчанию — False. AllowFormattingRows Необязательный Variant Значение True позволяет пользователю форматировать любую строку на защищенном листе. Значение по умолчанию — False. AllowInsertingColumns Необязательный Variant Значение True позволяет пользователю вставлять столбцы на защищенный лист. Значение по умолчанию — False. AllowInsertingRows Необязательный Variant Значение True позволяет пользователю вставлять строки на защищенный лист. Значение по умолчанию — False. AllowInsertingHyperlinks Необязательный Variant Значение True позволяет пользователю вставлять гиперссылки на защищенный лист. Значение по умолчанию — False. AllowDeletingColumns Необязательный Variant Значение True позволяет пользователю удалять столбцы на защищенном листе, где каждая ячейка удаляемого столбца разблокирована. Значение по умолчанию — False. AllowDeletingRows Необязательный Variant Значение True позволяет пользователю удалять строки на защищенном листе, где каждая ячейка в удаляемой строке разблокирована. Значение по умолчанию — False. AllowSorting Необязательный Variant Значение True позволяет пользователю выполнять сортировку на защищенном листе. Каждая ячейка в диапазоне сортировки должна быть разблокирована или не защищена. Значение по умолчанию — False. AllowFiltering Необязательный Variant Значение True позволяет пользователю задавать фильтры на защищенном листе. Пользователи могут изменять условия фильтра, но не могут включать или отключать автоматический фильтр. Пользователи могут задавать фильтры для существующего автофильтра. Значение по умолчанию — False. AllowUsingPivotTables Необязательный Variant Значение True позволяет пользователю использовать отчеты сводной таблицы на защищенном листе. Значение по умолчанию — False.
Замечания
В предыдущих версиях, если применить этот метод с аргументом UserInterfaceOnly , равным True , а затем сохранить книгу, при повторном открытии книги будет полностью защищен весь лист (а не только интерфейс). Чтобы повторно включить защиту пользовательского интерфейса после открытия книги, необходимо снова применить этот метод, если параметр UserInterfaceOnly имеет значение True.
Если вы хотите внести изменения в защищенный лист, можно использовать метод Protect на защищенном листе, если указан пароль. Кроме того, другой метод — снять защиту листа, внести необходимые изменения, а затем снова защитить лист.
Незащищено означает, что ячейка может быть заблокирована (диалоговое окно Форматирование ячеек ), но включена в диапазон, определенный в диалоговом окне Разрешить пользователям изменять диапазоны , и пользователь отключил защиту диапазона паролем или был проверен с помощью разрешений NT.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
How to Lock the data in a cell in excel using vba
I want to stop others from editing the cell contents in my excel sheet using VBA. Is it possible to do this?
5 Answers 5
You can first choose which cells you don’t want to be protected (to be user-editable) by setting the Locked status of them to False:
Then, you can protect the sheet, and all the other cells will be protected. The code to do this, and still allow your VBA code to modify the cells is:
Try using the Worksheet.Protect method, like so:
You should, however, be concerned about including the password in your VBA code. You don’t necessarily need a password if you’re only trying to put up a simple barrier that keeps a user from making small mistakes like deleting formulas, etc.
Also, if you want to see how to do certain things in VBA in Excel, try recording a Macro and looking at the code it generates. That’s a good way to get started in VBA.
Let’s say for example in one case, if you want to locked cells from range A1 to I50 then below is the code:
In another case if you already have a protected sheet then follow below code:
You can also do it on the worksheet level captured in the worksheet’s change event. If that suites your needs better. Allows for dynamic locking based on values, criteria, ect.
Linked
Hot Network Questions
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.20.43330
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Как заблокировать ячейку vba excel
Как заблокировать и разблокировать указанные ячейки с помощью флажка в Excel?
В этой статье говорится об использовании флажка для блокировки и разблокировки диапазона указанных ячеек в Excel.
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Приведенный ниже сценарий VBA может помочь вам разблокировать или заблокировать диапазон указанных ячеек при установке или снятии флажка на листе. Пожалуйста, сделайте следующее.
1. Во-первых, вам необходимо указать имя диапазона ячеек, который вам нужно заблокировать и разблокировать с помощью флажка.
Здесь я выбираю диапазон A1: A14, набираю имя LockRng в Имя и фамилия поле, а затем нажмите Enter ключ. Смотрите скриншот:
2. На рабочем листе есть флажок, который вы будете использовать для блокировки и разблокировки ячеек, щелкните правой кнопкой мыши вкладку «Лист», а затем щелкните Просмотреть код из контекстного меню.
Внимание: Флажок должен быть флажком ActiveX при вставке.
3. Во всплывающем Microsoft Visual Basic для приложений окна, скопируйте и вставьте приведенный ниже код VBA в Code окно.
Код VBA: заблокировать или разблокировать диапазон указанных ячеек с помощью флажка
Внимание: В коде Checkbox1 — это имя флажка, LockRng — это имя указанной ячейки диапазона. Вы можете изменить их по своему усмотрению.
4. нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.
Теперь вы можете протестировать код. При снятии флажка появляется Kutools for Excel появится диалоговое окно, в котором сообщается, что указанный диапазон заблокирован, нажмите кнопку OK кнопку.
При установке флажка все ячейки в указанном диапазоне будут разблокированы, и вы получите Kutools for Excel диалоговое окно, как показано на скриншоте ниже справа.
Источник
Как заблокировать ячейку vba excel
Информация о сайте
Инструменты и настройки
Excel Windows
и
Excel Macintosh
Вопросы и решения
Работа и общение
Работа форума и сайта
Функции листа Excel
= Мир MS Excel/Автоматическая блокировка ячейки после ввода значения — Мир MS Excel
Войти через uID
Войти через uID
Автоматическая блокировка ячейки после ввода значения
qwertyq81 | Дата: Воскресенье, 03.02.2013, 20:08 | Сообщение № 1 | ||||||||||||||||||||||||||||
|