Функция GCD в VBA, возвращающая слишком много цифр - PullRequest
0 голосов
/ 29 мая 2018

Я хочу вернуть соотношение в моем листе Excel, используя VBA.У меня есть два столбца данных: исправленные дефекты и неисправленные дефекты.Отношение будет числом дефектов, которые исправила команда, к числу дефектов, которые они не могли устранить.Я использую эту функцию, чтобы найти GCD:

Function GCD(numerator, denominator)
    If denominator = 0 Then
        GCD = numerator
    Else 
        GCD = GCD(denominator, numerator Mod denominator)
    End If
End Function

Затем я вычисляю его и печатаю на странице результатов моей электронной таблицы с:

Sheets("Results").Range("M" & iResults)/Value = RatioNum1 & ":" & RatioNum2

Где RatioNum1 и RatioNum2 простопеременные, в которых я хранил Data1 / GCD и Data2 / GCD.Моя проблема в том, что в Excel, скажем, соотношение 1 к 1, он печатает второе число с дополнительной цифрой каждый раз, в этом примере 1:01.Или, если он должен быть 3: 1, он печатает 3:01 и т. Д.

Это просто способ, которым функция возвращает значения, или я случайно добавил куда-то лишнюю цифру с моим кодом.

1 Ответ

0 голосов
/ 29 мая 2018

Чтобы удалить ноль перед вторым числом отношения, просто используйте функцию Int, например:

Sheets("Results").Range("M" & iResults)/Value = RatioNum1 & ":" & Int(RatioNum2)
...