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

时间:2015-01-22 08:47:48

标签: excel excel-vba vba

我在工作簿中有10个工作表。

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

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

这样做的好方法是什么?

我考虑过在10个工作表中输入一个文本框。但这至少有两个缺点

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

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您是否可以只使用管理表上的命令按钮并从中运行此代码?

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()事件,但我会建议用户至少可以控制的按钮。

答案 1 :(得分:0)

你可以Insert> Shapes>例如Text BoxRounded Rectangle,然后在选择新形状时点击公式栏,并在管理页上键入对单元格的引用,例如
{{{ 1}}并根据需要格式化形状。

确保='admin sheet'!A1> Format Shape...> Properties

text box with formula screenshot

完成设计工作表后,选择所有可编辑的单元格,然后在Don't move or size with cells标签上的右键单击菜单Format cells...取消选中Protection以启用对这些单元格的编辑即使你在下一步protect the sheet之后:

使用Lock cells> Review - 您不必使用任何密码,您可以启用用户应该执行的所有操作,如果您想阻止用户移动,请不要选中Protect Sheet复选框形状。