VBA Excel - 根据单元格值插入符号

时间:2015-02-24 20:39:26

标签: excel excel-vba vba

我需要使用Excel,我绝对是新手。我正在寻找一种VBA解决方案来加速日常工作。这是我的情况:我需要检查C列的单元格,它具有负值,正值和净值,然后在B列的相应单元格中插入sysmbols。

例如,如果 C4 具有正值(2,345), B4 应该具有& u& 作为符号。如果 C5 具有负值(-12.98),则 B5 应为& d& 作为符号。如果 C6 具有自然值(0.000),则 B6 应插入& n& 作为符号。

B 列已存在且值均在列 C 中。

2 个答案:

答案 0 :(得分:1)

正如凯尔所说,你需要的只是一个简单的(好的,嵌套的)if公式:

=IF(C1<0;"&d&";IF(C1>0;"&u&";"&n&"))

格式非常简单,if有三个部分用分号分隔。第一个是逻辑测试,你测试的是什么,在这种情况下,如果C1中的值小于(或大于)0。如果测试中的语句为真,则下一个是单元格中想要的值,并且如果它是假的,最后该放什么。

在这种情况下,我们再次测试C1是否不小于0,看它是否大于零,这就是为什么在第一个中有另一个if语句的原因。

要将公式应用于整个列,只需将其整个复制,并且它所引用的单元格应自动更新。

答案 1 :(得分:0)

尝试一下:

Sub WhatEver()
    Dim C As Range
    Set C = Intersect(ActiveSheet.UsedRange, Range("C:C"))
    For Each cc In C
        ccv = cc.Value
        If ccv <> "" Then
            If ccv = 0 Then
                cc.Offset(0, -1).Value = "&n&"
            ElseIf ccv > 0 Then
                cc.Offset(0, -1).Value = "&u&"
            Else
                cc.Offset(0, -1).Value = "&d&"
            End If
        End If
    Next cc
End Sub