excel中使用vba来求取两个数的最大公约数

 时间:2026-02-14 00:21:07

1、首先打开一个工作样表作为例子,并进入vba代码编辑窗口。

excel中使用vba来求取两个数的最大公约数

2、在编辑窗口中输入以下代码。

Sub 最大公约数()

    Dim m As Integer, n As Integer

    Dim m1 As Integer, n1 As Integer

    Dim t As Integer

    m = InputBox("输入自然数m:")

    n = InputBox("输入自然数n:")

    m1 = m

    n1 = n

    If m1 < n1 Then

        m1 = n

        n1 = m '交换m和n的值

    End If

    Do

        r = m1 Mod n1

        If r = 0 Then Exit Do

        m1 = n1

        n1 = r

    Loop

    str1 = m & "," & n & "的最大公约数=" & n1

    MsgBox str1

End Sub

excel中使用vba来求取两个数的最大公约数

3、我们先要知道最大公约数的求法,以本代码为例使用的是辗转相除法,定义是两个整数的最大公约数等于其中较小的那个数和两数的和相除余数为最大公约数。所以我们先将两个整数做一个定义。

excel中使用vba来求取两个数的最大公约数

4、接着是需要新定义两个整数变量为m1,n1用作计算。不直接使用m和n作为变量的原因大家很清楚是为了在最后显示结果的时候,可以直接调用。

excel中使用vba来求取两个数的最大公约数

5、这里的if判断语句,是为了确定两个整数中较小的那个值作为除数。

If m1 < n1 Then

        m1 = n

        n1 = m '交换m和n的值

    End If

大家可以理解为在输入m,n值时会发生第一个数比第二个数大的时候,做这样一个重新赋值,来简单化后面的重复取余过程。

excel中使用vba来求取两个数的最大公约数

6、这里是做重复取余,直到余数为0中止。

excel中使用vba来求取两个数的最大公约数

7、最后定义一个变量显示n1值为最大公约数,并使用msgbox函数显示其信息。

excel中使用vba来求取两个数的最大公约数

8、按F5进行调试。我们还可以在loop循环里设定一个debug.print r来调试每次取余的求值。来帮助我们理解这段循环语句的实际计算过程。大家注意这两个代码

m1 = n1

n1 = r

这里是将M1取n1值,而n1取求得的余值。按过程计算是越来越小,最终mod得值为0。

excel中使用vba来求取两个数的最大公约数

9、先写到这里了,谢谢大家的观看。

祝大家生活愉快。

小编还有许多其他的经验可以观看,如果无法解决问题可以联系小编进行咨询。

看不清楚图片的可以点击放大再看哦。

  • 数据分析软件FineReport教程:[1]Excel导入
  • 如何使用VBA计算1到100的乘积
  • 如何在VB 6.0中添加和使用CommonDialog 控件?
  • python保留数字字符和英文字符串
  • 教你在excel表格中把数据可视化的方法
  • 热门搜索
    重阳节手抄报图片简单 熄灯一小时手抄报 珍爱生命手抄报内容 关于绿色环保的手抄报 简单病毒手抄报 节约能源手抄报 51劳动节手抄报 关爱生命文明出行手抄报 小学生手抄报模板 手抄报图片大全2年级