Почему это двойное сравнение дает ошибку переполнения в VBA - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь сравнить двойное число в VBA, чтобы убедиться, что оно находится между двумя числами. По какой-то причине он дает переполнение, не знаю почему. Первоначально я пытался объявить BeginRange как double и сделать BeginRange = 0#, но это только переместило ошибку переполнения на более раннюю часть кода.

Sub Main()
    
    Dim ZValues As Collection
    Set ZValues = New Collection
    Dim AvgTemps As Collection
    Set AvgTemps = New Collection
    
    Dim Temps As Worksheet
    Set Temps = ThisWorkbook.Worksheets("Temps")
    
    Dim TempsToSum As Collection
    Set TempsToSum = New Collection
    Dim ZValuesToSum As Collection
    Set ZValuesToSum = New Collection
    
    Dim CurrentRow As Long
        CurrentRow = 2
    Dim LastRow As Long
    LastRow = Temps.Cells(1, 3).End(xlDown).Row
    BeginRange = 0#
    Do Until CurrentRow > LastRow
        Dim CurrentZValue As Double
        CurrentZValue = Temps.Cells(CurrentRow, 3)
        CurrentTempValue = Temps.Cells(CurrentRow, 5)
        If CurrentZValue > BeginRange And CurrentZValue < BeginRange + 0.0015 Then
            ZValuesToSum.Add CurrentZValue
            TempsToSum.Add CurrentTempValue
            CurrentRow = CurrentRow + 1
        Else
            BeginRange = BeginRange + 0.0015
            ZValues.Add TemptsToSum
            AvgTemps.Add ZValuesToSum
        End If
    Loop
    Stop
    Set AvgTemps = GetAverages(TempsToSum)
    Set ZValues = GetAverages(ZValuesToSum)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...