在 Excel 中,我希望显示但不打印“名称”一词

在 Excel 中,我希望显示但不打印“名称”一词

我有一张 Excel 人口普查表,需要列出指定区域中的人员姓名。有一定数量的房间可以容纳人员,但房间并不总是满的。当房间中没有人时,我希望姓名字段显示单词“姓名”,但不打印单词“姓名”。然后,当房间满员时,我希望任何人都可以输入新人的姓名,并且该姓名既显示又打印,完全取代单词“姓名”,直到该人离开并且房间再次开放。有没有办法让单元格显示一个占位符,该占位符仅在有人输入该单元格时显示,然后当该单元格再次变为空白时重新出现?

答案1

通常这是不可能的。但是 Excel 有一个功能,您可以“滥用”它来实现这种方式。

在您想要输入数据的列前面直接创建一列。

例如,如果 C1 中有一个带有“名称”的空单元格,则在 C 列之前插入一列,因此 C1 变为 D1,而 C1 为空。

现在在 C1 中输入“名称”,并将 D1 留空。

现在来介绍技巧,将 C 列的宽度改为 1 像素大。由于 D1 为空,C1 将继续与 D1 重叠显示。但是,只要您在 D1 中输入文本,“名称”就会重叠,不再显示。它可能可见 1 像素,但这是我们能做的最好的事情。

答案2

这是单元格的示例B9. 将以下内容事件工作表代码区域中的宏。一旦安装,它将持续监视单元格。如果您清除单元格,宏会将“名称”放入单元格中:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim MyCell As Range
   Set MyCell = Range("B9")
   If Intersect(MyCell, Target) Is Nothing Then Exit Sub
   If MyCell.Value <> "" Then Exit Sub
   Application.EnableEvents = False
      MyCell.Value = "Name"
   Application.EnableEvents = True
End Sub

因为它是工作表代码,所以非常容易安装和自动使用:

  1. 右键单击 Excel 窗口底部附近的选项卡名称
  2. 选择查看代码-这将打开一个 VBE 窗口
  3. 粘贴内容并关闭 VBE 窗口

如果您有任何疑虑,请首先在试用工作表上尝试一下。

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能使其工作!

相关内容