VBA Excel十进制和

时间:2018-04-09 09:37:45

标签: vba excel-vba excel

源代码:

Dim TH As Double
Lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
'starting point
sRow = 2
'Loop in  all cells

For i = sRow To Lr


     'check if cell value are not same
        If Cells(i, 1).Value <> Cells(i + 1, 1) Then
        'if not same then merge all the above cells

        Range("I" & sRow, "I" & i).Resize(, 7).Select
        TH = Application.WorksheetFunction.Sum(Selection)


        **If TH <> 40 Then**

            Range("A" & sRow, "A" & i).Interior.Color = RGB(255, 0, 0)
        End If

在本守则中:
如果TH&lt;&gt; 40当TH在十进制数上计算时,条件不起作用。

例如3.60,0.80,4.60当使用SUM函数但是如果条件没有得到满足时,Sum将变为40。

请帮助

1 个答案:

答案 0 :(得分:0)

我试过这个,把小数点全部放在一边就可以了:

Sub TestMe()
    Dim lr As Long
    Dim TH As Double
    Dim i As Long
    lr = 10

    For i = 1 To lr
        If Cells(i, 1).Value <> Cells(i + 1, 1) Then
            Range("I" & 6, "I" & i).Resize(, 7).Select
            TH = Application.WorksheetFunction.Sum(Selection)
            If TH <> 40 Then
                Range("A" & 6, "A" & i).Interior.Color = RGB(255, 0, 0)
            End If
        End If
    Next

End Sub

因此,可能问题是你输入小数的方式。在某些系统(德语或法语)中,小数点分隔符为,,而在英语系统中,它是一个点 - .。因此,您可能使用了错误的。