有读者反馈一个问题:如何用VBA求出1000以内个位数与十位数之和,除以10,所得余数刚好等于其百位数的数字。这道题看似很费解,但如果利用了VBA真的不是问题了,今日来详细的讲解一下。

先上代码:

Sub kk()

2 Sheets("sheet4").Select

3 n = 1

4 For t = 100 To 1000

5 yy = (--RIGHT(t, 1)) (--Left(Right(t, 2), 1))

6 If yy Mod 10 = (--Left(Right(t, 3), 1)) Then

7 Cells(n, 1) = t

8 n = n 1

9 End If

10 Next

11 End Sub

代码讲解:

第一:上面是一个简单的VBA程序,此程序命名为kk,操作是在sheet4工作表中进行。

第二:首先选择的是从100到1000的FOR ,NEXT的循环,用来依次产生100到1000的数字,因为涉及到百位数字,所以两位数字不再考虑。这里利用了FOR,NEXT,它是一个循环语句,格式是FOR后跟变量,同时用等号赋值变量的起始和终止数字。有时候要跟上步长step,即每次增长的幅度,默认为1.当语句运行到NEXT后,变量会自动增加步长值,判断是否到了最大值,如果没有到最大值,指针回调到FOR语句后的循环体语句,再次执行,如果超过了最大值就退出循环。

在sheet4的工作表中,画个按钮,连接上上述代码,点击按钮,运行宏,就会得到结果,看下面的结果截图:

excel中个位十位百位相加的公式(个位与十位之和除以10得到的余数等于其百位数的VBA算法实例)(1)

好了,所有的结果已经出来了,一共有91个数字符合要求。

今日VBA内容技巧提升:

其一:减负运算的目的和使用方法,不清楚的赶快去查啊。

其二:如何用LEFT().RIGHT(),组合,求一个数的十位和百位数字,

其三:VBA中的FOR,NEXT语的作用是什么,如何使用。

其四:文章中的代码公布中第一行为什么没有行号?

如果上述四个问题都清楚了,好OK,你可以顺利的过关了,如果还有个别的知识点不是很清楚,要跟紧我的进度。努力啊。

分享成果,随喜正能量

,