Vba 倒置+;和-,<;及>;Excel单元格和公式中的符号
我有一本巨大的Excel 2016工作簿,其中(出于财务原因)所有收入均表示为负数,所有成本均表示为正数 我需要:Vba 倒置+;和-,<;及>;Excel单元格和公式中的符号,vba,excel,excel-formula,Vba,Excel,Excel Formula,我有一本巨大的Excel 2016工作簿,其中(出于财务原因)所有收入均表示为负数,所有成本均表示为正数 我需要: 反转所有工作簿内容中的+和-符号 反转所有工作簿公式中的>和
- 反转所有工作簿内容中的+和-符号李>
- 反转所有工作簿公式中的>和<符号
-1
相乘,因为这种方法可以处理单元格的值,但不能处理公式的文本,也不能反转公式中每个数字的+和-符号以及<和>符号
例如,假设我的单元格A3
的值为-150
,单元格B4
的值为20
我有类似于=IF(-A3
的公式
我需要单元格A3
变成+150
,单元格B4
变成-20
我需要公式变成=IF(-A3>B4,A3*5,A3*-2)
我担心我应该使用某种VBA代码,但坦率地说,我对此一无所知。
有人能帮我吗
非常感谢。您可以尝试以下内容:
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
Sub Replacement()
变暗rng,c As范围
作为字符串的Dim fml
'将其设置为所需的范围
设置rng=范围(“A1:C4”)
对于rng中的每个c
如果c.HasFormula那么
'如果单元格包含公式,则。。。
fml=c.公式
fml=fml&“*(-1)”翻转符号
fml=Replace(fml,“,”)'将临时字符串替换为所需的字符
c、 公式=fml
其他的
'如果是值,只需乘以-1即可
c、 值=c。值*-1
如果结束
下一个c
端接头
是否要将所有单元格值反转为相反的数字?即从负到正,反之亦然?还是要更改公式中每个数字的符号?像-5
到5
和2
到-2
?迈克尔,我意识到我的问题并不完全清楚,我已经重新措辞了。是的,所有单元格值都应该改变符号,我需要在公式中反转+和-符号,以及<和>符号。谢谢你的帮助!单元格B4
和A3
是由公式定义的还是刚输入的值?它们可能都是。。。。。。。它们可能指的是同一张工作表或另一张工作表……因此,一般来说,您希望将所有单元格乘以-1
,在公式中,如果有,您希望将
替换为,非常感谢Michal。此代码似乎改变了和反之亦然。此外,它似乎将公式的结果乘以-1。如果是这样,我不必更改公式结果的符号,而是需要更改公式中每个数字的符号。。。。