VBA中的GCD函数返回太多数字

时间:2018-05-29 14:49:49

标签: excel vba excel-vba greatest-common-divisor

我想使用VBA在Excel表格中返回一个比率。我有两列数据:修复的缺陷和未修复的缺陷。比率将是船员修理的缺陷数量,以及他们无法修复的缺陷数量。我正在使用此功能来查找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 :(得分:1)

要删除第二个比率数字前的零,只需使用Int函数,如下所示:

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