У меня есть 10 листов в книге.
На каждом листе этой книги я хочу ввести клиента, имя проекта и менеджера проекта в определенной должности. Эти значения одинаковы в аттестатах.
В идеале я хочу, чтобы пользователь вводил эти данные в один «административный лист», а затем отображал эту информацию на всех листах независимо от ширины их столбцов.
Как правильно это сделать?
Я подумал о том, чтобы ввести текстовое поле в каждый из 10 рабочих листов. Но у этого есть как минимум два недостатка
- Пользователи могут случайно выбрать и переместить текстовые поля, что приведет к путанице и раздражению.
- У меня должны быть какие-то события изменения рабочего листа VBA, которые обновляют флажки, когда пользователи меняют имя менеджера проекта, клиента или проекта на административном листе. Это кажется излишне сложным.
Есть ли способ лучше?
2 ответа
Не могли бы вы просто использовать командную кнопку на панели администратора и запустить из нее этот код?
Sub SO()
For Each ws In ActiveWorkbook.Sheets
If Not ws.Name = "admin sheet" Then _
ws.Range("A1:B10").Value = Sheets("admin sheet").Range("A1:B10").Value
ws.Columns("A:B").AutoFit
Next ws
End Sub
Если вы действительно хотите, вы можете назначить это событию Worksheet_Change()
в модуле «лист администратора», но я бы рекомендовал кнопку, над которой у пользователя есть хотя бы некоторый контроль.
End If
вместо символа продолжения строки для многострочных операторов if, чтобы улучшить удобство сопровождения.
Вы можете Insert
> Shapes
> например. Text Box
или Rounded Rectangle
, затем нажмите на панель формул, пока выделена новая фигура, и введите ссылку на ячейку на листе администратора, например
='admin sheet'!A1
и отформатируйте фигуру соответствующим образом.
Обязательно Format Shape...
> Properties
> Don't move or size with cells
.
Когда вы закончите разработку листа, выберите все редактируемые ячейки и в контекстном меню Format cells...
на вкладке Protection
снимите флажок Lock cells
, чтобы разрешить редактирование этих ячеек даже после того, как вы защитите лист на следующем шаге:
Используйте Review
> Protect Sheet
— вам не нужно использовать какой-либо пароль, и вы можете включить все действия, которые должны выполнять пользователи, просто НЕ устанавливайте флажок Edit Objects
, если хотите запретить пользователям перемещать фигуры.
Похожие вопросы
Новые вопросы
excel
Только для вопросов по программированию объектов или файлов Excel или по разработке формул. Вы можете комбинировать тег Excel с тегами и вопросами VBA, VSTO, C#, VB.NET, PowerShell, OLE и другими тегами и вопросами, связанными с программированием, если это применимо. НЕ используйте с другим программным обеспечением для работы с электронными таблицами, например [google-sheets].
no regards to their column widths
? что ширина/положение общих данных должны быть в одном и том же месте на всех листах? или что он может иметь разную ширину/положение на каждом листе?I want the text to be displayed in the same position on all sheets.