excel表格_excel函数公式大全_execl从入门到精通
个位与十位之和除以10得到的余数等于其百位数的VBA算法实例2024-04-25 12:02:43
有读者反馈一个问题:如何用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其实就是一个行数的变量,当有值填充时就向下调指针,
好了看看代码的截图:
在sheet4的工作表中,画个按钮,连接上上述代码,点击按钮,运行宏,就会得到结果,看下面的结果截图:
好了,所有的结果已经出来了,一共有91个数字符合要求。
今日VBA内容技巧提升:
其一:减负运算的目的和使用方法,不清楚的赶快去查啊。
其二:如何用LEFT().RIGHT(),组合,求一个数的十位和百位数字,
其三:VBA中的FOR,NEXT语的作用是什么,如何使用。
其四:文章中的代码公布中第一行为什么没有行号?
如果上述四个问题都清楚了,好OK,你可以顺利的过关了,如果还有个别的知识点不是很清楚,要跟紧我的进度。努力啊。
分享成果,随喜正能量
标签: excel如何把所有数字都除以1000