在Excel中创建占位符文本

时间:2016-03-08 14:39:27

标签: excel

我仍然相当擅长excel,但我可以解决一些简单的公式。我正在寻找创建占位符文本效果。我希望实现这一目标的方式就是这样;

单元格A1:具有占位符文本并被隐藏。 在此之下,包含公式的单元格B1。

如果C1为空,则此公式检查单元格C1是否为空白,它返回C1的值。该值是A1的值。

这就是我的想法,但我不确定如何编码。我已经在网上反弹了一段时间,但我无法找到具体的答案。我得到的最接近的是;

=IF(C6<>"","",C4)

只是为了澄清我希望将公式B1的结果反映到C1中。

1 个答案:

答案 0 :(得分:2)

好的,所以把它放在工作表的代码模块中。确保将其放在您正在监控的特定表的模块中。

enter image description here

首先,使用类似=$C$1的公式填充范围C5到C99。你应该只需要这样做一次,宏稍后会处理它。

Private Sub Worksheet_Change(ByVal Target As Range)

'the formula reference
Dim defaultFormula As String
defaultFormula = "=$C$1"

'The default text cell:
Dim defaultText As Range
Set defaultText = Range("C1")

'The cells you want to monitor:
Dim rng As Range
Set rng = Range("C5:C999") '## Modify as needed

'Cell iterator
Dim cl As Range

If Intersect(Target, rng) Is Nothing Then Exit Sub

'Avoid infinite looping
Application.EnableEvents = False

'If the user has deleted the value in the cell, then replace it with the formula:
For Each cl In Intersect(Target, rng)
    If Trim(cl.Value) = vbNullString Then
        cl.Formula = defaultFormula
    End If
Next

'Turn on Events:
Application.EnableEvents = True

End Sub

这样做(希望如此)从上面代码中的注释中可以解释为什么Change事件会在工作表中的单元格更改时生成。