Excelmacros如果replace公式
我试图replace单元格中的值,所以如果它有0隐藏它。
excel公式如下IF(A1=0;"";A1)
。
我正在尝试这个automaticaly,但我有问题。
到目前为止,我想出了这个:
Sub apply_Error_Control() Dim cel As Range For Each cel In Selection If cel.HasFormula Then cel.Formula = Replace(cel.Formula, "=", "=IFF(") & "=0" & ";" & "")" End If Next cel End Sub
给这个链接一个视图: 三种方法来隐藏零值
我仍然强烈build议下单元格式化路线:
Sub apply_Error_Control() Dim rngCurrent As Range If TypeName(Selection) = "Range" Then Set rngCurrent = Selection.SpecialCells(xlCellTypeFormulas) rngCurrent.NumberFormat = "0;-0;;@" End If End Sub
但是如果你坚持以公式为基础的方法,请至less使用我已经概述的方法,以避免在(例如)embedded图表或button上运行代码,并立即使用公式来触发这些单元格 – 循环find一个公式是乏味和缓慢的。
试试这个(注意Selection.Cells
,它只会在你手动select的范围内工作):
Sub apply_Error_Control() Dim cel As Range, _ RangeInForumla As String For Each cel In Selection.Cells If cel.HasFormula Then RangeInForumla = Replace(cel.Formula, "=", "",1,1) cel.Formula = "=IF(" & RangeInForumla & "=0," & Chr(34) & Chr(34) & "," & RangeInForumla & ")" End If Next cel End Sub