在每个工作表的相同位置显示相同的文本

我有一个工作簿中的10个工作表。

在本工作簿的每个工作表中,我都想在某个位置input客户,项目名称和项目经理。 这些值在att表中是相同的。

理想情况下,我希望用户将这些详细信息input到一个“pipe理员表单”中,然后在所有表单中显示这些信息,而不考虑其列宽。

什么是这样做的好方法?

我已经考虑在10个工作表中的每一个中input一个文本框。 但是这至less有两个缺点

  • 用户可能会意外地select和移动文本框,并变得困惑和烦恼
  • 当用户更改pipe理工作表中的项目经理,客户或项目名称时,必须有某种VBA工作表更改事件来更新checkbox。 这感觉不必要的复杂。

有没有更好的办法?

难道你不只是使用pipe理工作表上的命令button,并从它运行这个代码?

 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 

如果你真的想把这个分配给“admin sheet”模块中的一个Worksheet_Change()事件,但是我会推荐一个用户至less有一些控制权的button。

您可以Insert > Shapes >例如Text BoxRounded Rectangle ,然后单击公式栏,同时select新的形状,并键入对pipe理表单元格的引用,例如
='admin sheet'!A1并根据需要设置形状。

确保Format Shape... > Properties > Don't move or size with cells

文本框与公式截图

当您完成devise工作表时,请select所有要编辑的单元格,然后在右键单击菜单中Format cells...在“ Protection选项卡上取消选中Lock cells格即使在下一步保护工作表后也可以编辑这些单元格:

使用“ Review >“ Protect Sheet – 您不必使用任何密码,并且可以启用用户应该执行的所有操作,但如果要防止用户移动形状,则不要选中“ Edit Objectscheckbox。