有读者反馈一个问题:如何用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的工作表中,画个按钮,连接上上述代码,点击按钮,运行宏,就会得到结果,看下面的结果截图:
好了,所有的结果已经出来了,一共有91个数字符合要求。
今日VBA内容技巧提升:
其一:减负运算的目的和使用方法,不清楚的赶快去查啊。
其二:如何用LEFT().RIGHT(),组合,求一个数的十位和百位数字,
其三:VBA中的FOR,NEXT语的作用是什么,如何使用。
其四:文章中的代码公布中第一行为什么没有行号?
如果上述四个问题都清楚了,好OK,你可以顺利的过关了,如果还有个别的知识点不是很清楚,要跟紧我的进度。努力啊。
分享成果,随喜正能量
,