我仍然相当擅长excel,但我可以解决一些简单的公式。我正在寻找创建占位符文本效果。我希望实现这一目标的方式就是这样;
单元格A1:具有占位符文本并被隐藏。 在此之下,包含公式的单元格B1。
如果C1为空,则此公式检查单元格C1是否为空白,它返回C1的值。该值是A1的值。
这就是我的想法,但我不确定如何编码。我已经在网上反弹了一段时间,但我无法找到具体的答案。我得到的最接近的是;
=IF(C6<>"","",C4)
只是为了澄清我希望将公式B1的结果反映到C1中。
答案 0 :(得分:2)
好的,所以把它放在工作表的代码模块中。确保将其放在您正在监控的特定表的模块中。
首先,使用类似=$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
事件会在工作表中的单元格更改时生成。