书籍文库  |  文档资料  |  最近更新  |  MAP  |  TAG  | 
注册
手机版
在线二八杠
当前位置:在线二八杠 > 电脑办公 > 办公软硬件 > 个位与十位之和除以10得到的余数等于其百位数的VBA算法实例

现金二八杠:个位与十位之和除以10得到的余数等于其百位数的VBA算法实例

分享人:人品太次郎 来源:互联网 时间:2018-06-21 阅读:0

在线二八杠 www.kc6n.com.cn 有读者反馈一个问题:如何用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语句后的循环体语句,再次执行,如果超过了最大值就退出循环。

第三:取出个位和百位数,用的语句分别是--Right(t, 1)和 --Left(Right(t, 2), 1),它们前面的'--'是减负运算,关于减负运算的知识我在之前的文章中讲过,这里不再讲了,有不清楚的可以去查查我之前的文章,把这个知识点补上。这里利用LEFT和right函数,就是左截取函数和右截取函数的组合,来实现提取出十位数的数值。注意因为LEFT函数和RIGHT函数是字符串截取函数,出来的数值也是字符串的格式。最后用变量yy来存储上面两个数值的和。

第四:求余数运算,在VBA中求余数的运算也是MOD,MOD函数是一个求余函数,其格式为: mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。特别注意:在EXCEL中,MOD函数是用于返回两数相除的余数,返回结果的符号与除数(divisor)的符号相同。yy与10的余数就是yy MOD 10 .百位数就是--Left(Right(t, 3), 1),两者是否相等,要进行判断。

第五:如果相等,那么第N行的第1个单元格的VALUE就等于这个数值,同时要把要填充的单元格n的指针向下调1,来存储下一个将产生的数。这里的变量N其实就是一个行数的变量,当有值填充时就向下调指针,

好了看看代码的截图:

个位与十位之和除以10得到的余数等于其百位数的VBA算法实例

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

个位与十位之和除以10得到的余数等于其百位数的VBA算法实例

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

今日VBA内容技巧提升:

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

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

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

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

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

分享成果,随喜正能量


百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网www.kc6n.com.cn,您的在线图书馆!

热点阅读

网友最爱