复制工作表之间的值,但根据原始值将最终结果切换到 – / +

我正在尝试编写一个代码来在表单之间复制值作为从单元格到单元格的单个值或单元格的总和。 难度是试图将最终结果转换为 – / +。 如果纸张1上的值为正值,则在纸张2上将其显示为负值,如果纸张1的值为负值,则在纸张2上将其显示为正值。另外,如果值的总和为负值,则将其显示为正值等等

到目前为止,我已经把它放在一起,但我没有太多的运气。 请有人可以告诉我做错了什么?

If Worksheets("sheet1").Range("E4").Value < 0 Then _ Worksheets("sheet1").Range("E4").Copy Worksheets("sheet2").Range("G4").PasteSpecial xlPasteValues 'the answer needs to be in + Else Worksheets("sheet1").Range("E4").Copy Worksheets("sheet2").Range("G4").PasteSpecial xlPasteValues 'the answer nees to be in - If WorksheetFunction.Sum(Worksheets("Sheet1").Range("E4") _ , Worksheets("Sheet1").Range("E6")) < 0 Then Worksheets("sheet2").Range("G4") = WorksheetFunction.Sum(Worksheets("Sheet1").Range("E4") _ , Worksheets("Sheet1").Range("E6")) 'the answer needs to be in + Else Worksheets("sheet2").Range("G4") = WorksheetFunction.Sum(Worksheets("Sheet1").Range("E4") _ , Worksheets("Sheet1").Range("E6")) 'the answer needs to be in - 

您应该能够简单地从0减去值,以将正值翻转为负值,反之亦然。

 Sub flipSign() Dim ws2 As Worksheet Set ws2 = Worksheets("Sheet2") With Worksheets("Sheet1") ws2.Range("G4") = 0 - .Range("E4").Value ws2.Range("G4") = 0 - .Range("E6").Value ws2.Range("G4") = 0 - Application.Sum(.Range("E4, E6")) End With End Sub 

我想你的示例代码只是一个testing床,你打算改变目标(s),但这应该让你开始。