Блокировка TextBox от перемещения и изменения размера листа и только редактирование текста Excel VBA
Я создаю TextBox в vba, где пользователи вводят значение, а затем просматривают его на листе, как вы можете видеть здесь.
Моя проблема в том, что я хочу заблокировать этот TextBox от перемещения, и пользователи могут просто редактировать текст внутри поля. Я пытался Свойства и проверил «Заблокировано» и снял флажок «Заблокированный текст», затем защитил лист
- Управление текстовым полем в Excel - как ссылаться в Perl
- Присоединение текстового поля к точке или строке на диаграмме в Excel / VBA
- Текст текстового поля исчезает при вводе текста Excel VBA - часть 2
- Excel Noob Скопировать ячейку Excel в текстовое поле HTML
- Имя свойства динамически созданных текстовых полей
Sub protect_TextBox() ActiveSheet.Protect UserInterFaceOnly:=True 'rest of my code... End Sub
Он заблокировал мой TextBox от перемещения и изменения размера, и пользователи могут редактировать текст только внутри
Но он заблокировал также многие функции, такие как фильтрация, формирование … в основном я могу просто выбрать ячейку больше.
Любые предложения, пожалуйста, как заморозить только TextBox и оставить остальные ячейки незащищенными?
Большое спасибо.
- Как сделать текстовое поле ActiveX только для чтения, но прокручиваемым в Excel 2013?
- Текст текстового поля в Excel VBA
- сохранение данных в текстовом поле для Excel в vb.net
- Сохранить значение текстового поля, VBA, Excel
- Очистка текстового поля при нажатии кнопки VBA
- Удалить строку из текстового поля в слайде PowerPoint из папки - Компонент Error ActiveX не может создать объект
- Ячейка, подключенная средствами управления, продолжает терять формулу
- Получение значения из текстового поля и сохранение его в переменной в VBA
Метод worksheet.protect
имеет много аргументов, которые позволяют / запрещают пользователю делать определенные вещи. Большинство аргументов по умолчанию запрещают, если они не указаны в методе worksheet.protect
. См. Здесь полный список аргументов метода https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-protect-method-excel
Возможно, попробуйте что-то вроде этого:
Sub protect_TextBox() ActiveSheet.Protect UserInterFaceOnly:=True, AllowFormattingCells:=True, _ AllowSorting:=True, AllowFiltering:=True 'rest of my code... End Sub
Вы можете увидеть другие аргументы в ссылке и включить все, что вам нужно. Помните, что аргумент по умолчанию – false. Поэтому, если вы не включите их, будет больше ограничений на то, что пользователь может сделать для ячейки.