试图隐藏excel单元格中的文本

时间:2016-09-20 19:30:59

标签: excel

我正在考虑对调查结果进行测试。对于每个问题的列标题,它们是IMP1,IMP2等。我希望能够做的是将问题放在此单元格中,这样当您单击标题时,您可以看到问题,但是从文件的概述所有用户都能看到的是IMP1。

不确定这个措辞是否有意义,但基本上我想在单击一个单元格时在公式部分中找到该文本。当未选择单元格时,它应该只显示IMP1。

2 个答案:

答案 0 :(得分:0)

除了使用评论之外,您还可以使用VBA子例程根据工作表的SelectionChange事件执行此操作。在VBE中,双击VBAProject窗格中发生此事件的工作表。在该代码窗口中放置以下内容:

'Global Variable to hold the last column A cell that was clicked into
Private lastClicked As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    'Did we click out of a column A cell?
    If Not lastClicked Is Nothing Then
        If Target <> lastClicked Then

            'Copy the holder value from column C back to Column A
            lastClicked.Value = lastClicked.Offset(, 2).Value

            Set lastClicked = Nothing
        End If
    End If

    'Detect a click into column A
    If Target.Column = 1 Then

        'Update the global "lastClicked" variable
        Set lastClicked = Target

        'Move the holder text to column C
        Target.Offset(, 2) = Target.Value

        'Move the question text from column B to target
        Target.Value = Target.Offset(, 1).Value


    End If

End Sub

此设置假设您的问题(持有人文本如IMP1)位于工作表的A列中,并且您将在B列中隐藏(我假设)整个问题。 C将是空的,以便我们可以暂时保存持有者文本(尽管你可以将其填充到它自己的全局变量中)。

答案 1 :(得分:0)

这适用于单个单元格 A1,,但可以展开以处理 A 列中的所有单元格。首先在单元格中输入:

IMP1What is the meaning of life ??

然后将以下事件宏放在工作表代码区域中:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim A1 As Range

    Set A1 = Range("A1")
    l = Len(A1.Text)

    If Intersect(A1, ActiveCell) Is Nothing Then
        A1.Characters(Start:=1, Length:=l).Font.ColorIndex = 1
        A1.Characters(Start:=5, Length:=l).Font.ColorIndex = 2
    Else
        A1.Characters(Start:=1, Length:=l).Font.ColorIndex = 1
        A1.Characters(Start:=1, Length:=4).Font.ColorIndex = 2
    End If
End Sub

如果您点击 A1,,您会看到:

enter image description here

如果您单击该单元格,您将看到:

enter image description here

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

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. 选择查看代码 - 这会打开一个VBE窗口
  3. 粘贴内容并关闭VBE窗口
  4. 如果您有任何疑虑,请先在试用工作表上试用。

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

    删除宏:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 要了解有关宏的更多信息,请参阅:

      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

      必须启用宏才能使其生效!