在工作表之间复制值,但根据原始值将最终结果切换为 - / +

时间:2016-06-04 05:23:03

标签: excel excel-vba vba

我正在尝试编写一个代码来将工作表之间的值复制为从单元格到单元格的单个值或单元格的总和。困难是试图将最终结果转换为 - / +。如果工作表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 -

1 个答案:

答案 0 :(得分:1)

您应该能够简单地从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

我认为您的示例代码只是一个测试平台而您计划更改目标,但这应该可以帮助您开始。