У меня есть лист Excel, который содержит два прямоугольника и текст в других ячейках. Мне нужно разрешить пользователям редактировать текст только в прямоугольнике. Они не должны изменять размер объекта. Применение блокировки на прямоугольнике блокирует объект, а также текст. Кто-нибудь знает, как я могу это достичь?В Excel, VBA - Как мы можем заблокировать изменение размера прямоугольника
ответ
Почему бы не создать два объекта, один из которых является заблокированным прямоугольником, а один - текстовым полем, которое не заблокировано? Это действительно упрощенное, но возможный ответ.
Еще одна идея заключалась бы в том, чтобы прямоугольник равнялся ячейке набора и позволял им вводить свой текст в ячейку, и он переносится даже тогда, когда прямоугольник заблокирован.
Насколько мне известно, Excel не вмещает события для фигур, и поэтому нет простого способа обнаружить изменение размера фигуры, а затем изменить размер фигуры.
Можно подражать тому, что вы просите, используя обходной путь.
Представьте, что у вас есть два прямоугольника в вашей таблице под названием «Прямоугольник 1 и« Прямоугольник 2 ». Когда пользователь завершает обновление текста в любом поле, он должен щелкнуть электронную таблицу, чтобы перейти из режима редактирования для фигуры. Вы можете обнаружить это, используя событие Workbook_SheetSelectionChange
.
Следующий модуль позволяет установить размер прямоугольников, как константы и размер прямоугольников соответственно:
Const Rect1Height As Integer = 50
Const Rect1Width As Integer = 200
Const Rect2Height As Integer = 50
Const Rect2Width As Integer = 200
Sub SetRectangleSize()
Dim Rect1 As Shape
Dim Rect2 As Shape
Set Rect1 = ActiveSheet.Shapes("Rectangle 1")
Set Rect2 = ActiveSheet.Shapes("Rectangle 2")
Rect1.Height = Rect1Height
Rect1.Width = Rect1Width
Rect2.Height = Rect1Height
Rect2.Width = Rect1Width
End Sub
Теперь все, что вам нужно сделать, это вызвать этот подпункт из события на уровне рабочей книги:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
SetRectangleSize
End Sub
Каждый раз, когда пользователь обновляет текст в одном из прямоугольников они нажимают назад на таблицу и события обжигают, в результате прямоугольники имеет размеры в соответствии с постоянной высоты и ширины параметров, которые вы определили.
- 1. Изменение размера прямоугольника Android
- 2. Изменение размера прямоугольника в EaselJS
- 3. Как мы можем отключить изменение размера всплывающего окна в firefox?
- 4. excel vba изменение размера область печати
- 5. Динамическое изменение размера прямоугольника android
- 6. Excel - изменение размера
- 7. Как заблокировать ячейки Excel в VBA?
- 8. как заблокировать между рядами в excel vba
- 9. Изменение размера прямоугольника, нарисованного в drawRect
- 10. Изменение размера слайда PowerPoint в Excel 2013 VBA
- 11. Как мы можем использовать MSHTML с VBA?
- 12. Как мы можем заблокировать начальный уровень в HashMap?
- 13. Как мы можем изменить цвет прямоугольника при нажатии кнопки?
- 14. Изменение размера прямоугольника при произвольном происхождении
- 15. Изменение размера прямоугольника, из разных источников
- 16. Перезапись и изменение размера массивов в Excel VBA
- 17. Можем ли мы конфигурировать прямоугольник прямоугольника в UIImagePickerController
- 18. SVG - изменение размера прямоугольника, расположенный под углом
- 19. ImageMagick изменение размера до абстрактного прямоугольника
- 20. Изменение размера диаграммы Excel с помощью VBA в Powerpoint
- 21. Как мы можем заблокировать таблицу с помощью PHP/Drupal
- 22. Как мы можем заблокировать пользователя от установки флажка DataGridView?
- 23. повернутого размера прямоугольника ограничивающего прямоугольника
- 24. Заблокировать все ячейки рабочего листа Excel VBA
- 25. Изменение серии в excel vba
- 26. Можем ли мы написать макрос в C# для Excel
- 27. Excel-VBA Before Save Заблокировать диапазон ячеек
- 28. Как заблокировать данные в ячейке в excel с помощью vba
- 29. Изменение размера объекта диаграммы с помощью Excel VBA
- 30. Как заблокировать изменение размера окна в окне matplotlib Python?