Excel: текстовое поле объекта не может выполнять возврат каретки в защищенных или незащищенных состояниях листа (w / Text Unlocked) … почему?

Прежде всего, моя должная осмотрительность собрала массу ответов в отношении текстовых полей ActiveX, но ничего не было об объектных текстовых ящиках. Для моего проекта я не могу использовать ActiveX.

ОК, поэтому, когда лист незащищен, текстовое поле объекта (из Вставки> Формы) работает практически так, как я хочу: самое главное, чтобы я мог нажать клавишу Enter и получить возврат каретки. Затем я перехожу к свойствам формы и сниму флажок «Блокировать текст» и защищаю лист.

Однако, если защищенный лист защищен, способность выполнять возврат каретки (введите Enter и спуститься на одну строку) исчезнет. Shift + Enter и Alt + Enter тоже не работают.

Возможно ли, чтобы эта функциональность была доступна? Есть ли обходные пути? Почему Excel ненавидят меня? Вот некоторые из моих идей:

  • Unprotect Sheet, когда текстовое поле нажато / активировано, защитите, когда нет (не удалось определить синтаксис в VBA для этого. «Если Intersect …» – это то, что я думаю)
  • Вставьте Word Doc Object (не нравится это, потому что один клик входит в редактирование строки формулы, и я не могу заставить шрифт оставаться)
  • Просто используйте объединенную ячейку и попросите пользователей дважды щелкнуть, чтобы ввести и использовать Alt + Enter для новой строки.

В настоящее время выигрышным вариантом является использование объединенной ячейки, но мне просто нужно увидеть, будет ли ActiveX работать в нашей сети. Я действительно хочу придерживаться принципа KISS здесь, если это вообще возможно для конечного пользователя … Я не против кодирования в бэкэнде, чтобы он работал.

Спасибо за ваши мысли!

EDIT: Вот некоторые изображения, которые помогут …

Вот функциональность, которую я хотел бы иметь, когда мой лист защищен: Неохраняемая форма текстового поля

Далее это текстовое поле ActiveX с отображенным окном свойств (Developer> Design Mode> Properties). Свойства, которые делают его несколько пригодным для использования при защите листа, краснеют красным цветом, Multiline и Enter Key Behavior. Но опять же, я бы предпочел не использовать ActiveX … плюс, пользователь не может менять шрифт по строкам.

Текстовое поле ActiveX

Наконец, я нашел это интересным: есть еще одно текстовое поле в элементе управления формы, которое выделено серым цветом. Из поиска, похоже, что это было убрано в пользу версии текстовых полей для рисования объектов … или, может быть, это одно и то же? Слева – объекты рисования, один – серединный элемент управления формой, а правый – это ActiveX.

введите описание изображения здесь

В целом, я хотел бы просто посмотреть, есть ли способ иметь функциональные возможности текстового поля незащищенных форм листа, когда лист защищен.

Предполагая, что вы работаете с формой TextBox, вставленной с ленты, здесь:

введите описание изображения здесь

Затем вы можете использовать необязательный параметр в методе Protect :

 Sheet1.Protect DrawingObjects:=False 

Это позволит пользователю редактировать текстовые поля на листе, но сам лист останется защищенным.

Если вы используете элемент управления формой (вставленный из ленты Develper / Design), вы можете установить свойство .MultiLine к .MultiLine формы:

 Sub test() Dim tb As Shape Dim x As Object 'Get a handle on the SHAPE Set tb = ActiveSheet.Shapes(2) 'You have to access its properties from the OLEFormat.Object: tb.OLEFormat.Object.Object.MultiLine = True End Sub 

В моем тесте даже на защищенном листе это позволяет пользователю Shift + Enter вводить возврат каретки:

введите описание изображения здесь

Ctrl + Shift + Enter работает на защищенном листе.

  • Добавление текстовых и текстовых значений в ячейку
  • Зацикливание через файлы Txt с использованием проблемы VBA - DIR ()
  • Блокировка TextBox от перемещения и изменения размера листа и только редактирование текста Excel VBA
  • Удалить строку из текстового поля в слайде PowerPoint из папки - Компонент Error ActiveX не может создать объект
  • Получить значения для текстового поля из ячейки Excel в C #
  • Excel 2010 не может вставляться в текстовое поле формы
  • Как загрузить значения ячейки Excel в пустые текстовые поля в графическом интерфейсе tkinter после того, как файл был выбран и «Открыть файл» и загружен?
  • Как я могу суммировать значение в 8 текстовых файлах с одним текстовым полем?
  • Как активировать входной режим с VBA на текстовом поле неактивного x, вставленного в рабочий лист?
  • VBA Excel Укажите текущую дату в текстовом поле
  • сохранение данных в текстовом поле для Excel в vb.net
  • Interesting Posts

    Как сохранить копию текущего Excel в CSV в новую папку?

    Как очистить данные из следующего формата таблицы VBA

    VB – элемент с определенным именем не найден

    Excel: выпадающий список данных для заполнения данных с использованием единой формулы, которая получает несколько значений из поиска с несколькими критериями

    Excel – удаление столбцов, но сохранение именованного диапазона

    VBA – извлечение данных из закрытой книги Excel

    Почему лист входит в VBA, когда я просил его не быть

    Eviews не может экспортировать в Excel, когда названия печати определены

    Не удается сохранить книгу, содержащую графики, сгенерированные с помощью VBA

    Определите заданный диапазон с помощью VBA

    Создание пакетного файла

    Загрузка файлов Excel с помощью Django и Angular2

    Добавление спецификации в файл CSV с использованием fputcsv

    Excel VBA, открыть URL-адрес без открытия браузера

    Загрузите файл Excel и отобразите его в Grid в asp.net MVC

    Давайте будем гением компьютера.