反转+和 - ,<和> Excel单元格和公式中的符号

时间:2017-08-28 06:02:51

标签: excel vba excel-vba excel-formula

我有一份庞大的Excel 2016工作簿,其中(出于经济原因)所有收入都表示为负数,所有成本均为正数。

我需要:

  • 反转所有工作簿内容中的+和 - 符号。
  • 反转>和<签署所有工作簿的公式。

我不能只使用"粘贴特殊"乘以-1,因为虽然这种方法适用于单元格'值,它不适用于公式'文本并不会反转+和 - 符号,也不反转<和>公式中每个人物的迹象。

例如,假设我的单元格A3的值为-150,单元格B4的值为20

我有=IF(-A3< B4,A3*-5,A3*2)等公式。

我需要将单元格A3变为+150,将单元格B4变为-20

我需要公式成为=IF(-A3>B4,A3*5,A3*-2)

我担心我应该使用某种VBA代码,但我坦率地说这是无效的。 有人可以帮帮我吗?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

Sub Replacement()
Dim rng, c As Range
Dim fml As String
'set it to the range you want
Set rng = Range("A1:C4")

For Each c In rng

    If c.HasFormula Then
        'if cell contains formula, then...
        fml = c.formula
        fml = fml & "*(-1)" 'flip the sign
        fml = Replace(fml, "<", "~!@~") 'change temporarily to some unique string
        fml = Replace(fml, ">", "<")
        fml = Replace(fml, "~!@~", ">") 'replace temporary string to character we want
        c.formula = fml
        Else
            'if it's value, just multiply by -1
            c.Value = c.Value * -1
        End If

    Next c

End Sub