VBA"If <Then"功能无法正常工作

Mor*_*lis 1 excel vba

我有一个宏,它将一周的时间值(dblTotal)相加,然后将该总数添加到一周的最后一天的"H"列中.

然而,对于其中一周,周数时间值仅总计为"0.0972222222222222"(02:20:00)

dblTotal = "0.0972222222222222"
Run Code Online (Sandbox Code Playgroud)

以下代码让我头疼:

    If dblTotal > "1.875" Then
        Range("I" & (i - 1)).Value = dblTotal - "1.875"
        Range("H" & (i - 1)).Value = "1.875" - preTotal
    Else
        Range("H" & (i - 1)).Value = dblTotal - preTotal
    End If
Run Code Online (Sandbox Code Playgroud)

运行时,它显示dblTotal大于1.875?..

如果我在这里遗漏了一些愚蠢的东西,请告诉我.我已经尝试过对值进行格式化,但感觉好像我在黑暗中拍摄.

Dmi*_*liv 6

出现此问题是因为VBA修改0.09722222222222229.72222222222222E-02(相等),但是当您将此值与string("1.875")进行比较时,您的dblTotal转换也会转换为字符串.所以,当你比较两个字符串: "9.72222222222222E-02""1.875",第一个将更大.

尝试通过强制Double转换"1.875"1.875以下内容来修改代码:

If CDbl(dblTotal) > 1.875 Then
    Range("I" & (i - 1)).Value = dblTotal - 1.875
    Range("H" & (i - 1)).Value = 1.875 - preTotal
Else
    Range("H" & (i - 1)).Value = dblTotal - preTotal
End If
Run Code Online (Sandbox Code Playgroud)