excel 在另一列中打印if-then语句的输出

3lxsmp7m  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(113)

这听起来像是最简单的事情,但我在这里。
我有一个包含正数和负数的列,我试图编写一个代码,根据单元格的值,在B列(或C列或D列,无所谓)打印“P”或“N”。
例如,如果单元格A2的值为-32,则单元格B2应分配字符串“N”。然后分配A3/B3、A4/B4,依此类推。
我的问题并不在于if-then-else语句本身,而在于如何将输出打印到我想要的位置。

Sub Negatives()
value = Range("A:A")
    If Sgn(value) < 0 Then
        //??? N
    ElseIf Sgn(value) >= 0 Then
        //??? P
    End If
End Sub

我是否应该使用for循环来遍历列中的每个值?

svujldwt

svujldwt1#

简短的回答是肯定的。你可以构造一个数组,然后一次把它全部加进去,但这仍然需要一个循环来决定每个单元格的值。
我建议:

Sub Negatives()
    Dim numberRange As Range
    Set numberRange = ThisWorkbook.Sheets("Sheet1").UsedRange.Columns("A")
    
    For Each cell In numberRange.Cells
    
        If cell.Value < 0 Then
            cell.Offset(0, 1).Value = "N"
        ElseIf cell.Value >= 0 Then
            cell.Offset(0, 1).Value = "P"
        End If
    Next
    
End Sub

相关问题