Excel宏IF替换公式

时间:2015-11-04 10:33:03

标签: excel vba excel-vba

我正在尝试替换单元格中的值,所以如果它有0来隐藏它。

excel公式是以下IF(A1=0;"";A1)

我正在尝试自动,但我遇到了问题。

到目前为止,我提出了这个问题:

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

2 个答案:

答案 0 :(得分:1)

为此链接提供视图: Three ways to hide zero values

我仍然强烈建议您遵循单元格格式化路线:

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

但是如果你坚持使用基于公式的方法,请至少采用我概述的方法,以避免在(例如)嵌入式图表或按钮上运行代码,并立即点击这些单元格一个公式 - 循环查找具有公式的公式是繁琐而缓慢的。

答案 1 :(得分:0)

尝试一下(注意<openerp> <data> <template id="report_idtest_name"> <t t-call="report.html_container"> <t t-foreach="docs" t-as="o"> <t t-call="report.external_layout"> <div class="page"> <h2>Report title</h2> </div> </t> </t> </t> </template> <report id="report_idtest" model="pprepair.ppmain" string="Ppreport" report_type="qweb-pdf" name="pprepair.report_idtest_name" /> </data> </openerp> 所以它只能在您手动选择的范围内工作):

Selection.Cells