簡體   English   中英

Excel Macro IF替換公式

[英]Excel Macro IF replace formula

我正在嘗試替換單元格中的值,以便如果它具有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

給此鏈接一個視圖: 三種隱藏零值的方法

我仍然強烈建議您沿單元格格式化路線進行操作:

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

但是,如果您堅持使用基於公式的方法,請至少使用我概述的方法,這樣可以避免在(例如)嵌入式圖表或按鈕上運行代碼,並立即使用公式點擊這些單元格-遍歷查找具有公式的對象是乏味且緩慢的。

嘗試一下(注意Selection.Cells ,使其僅在您手動選擇的范圍內起作用):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM