我正在考虑对调查结果进行测试。对于每个问题的列标题,它们是IMP1,IMP2等。我希望能够做的是将问题放在此单元格中,这样当您单击标题时,您可以看到问题,但是从文件的概述所有用户都能看到的是IMP1。
不确定这个措辞是否有意义,但基本上我想在单击一个单元格时在公式部分中找到该文本。当未选择单元格时,它应该只显示IMP1。
答案 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,,您会看到:
如果您单击该单元格,您将看到:
因为它是工作表代码,所以很容易安装和自动使用:
如果您有任何疑虑,请先在试用工作表上试用。
如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除宏:
要了解有关宏的更多信息,请参阅:
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
必须启用宏才能使其生效!