VBA找单元格对应重复的数字同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 16:41:22
VBA找单元格对应重复的数字同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数
VBA找单元格对应重复的数字
同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数字比较,如果相同,则保留,如果不同则不取,第2-10个数字同理,即位置对应且数字一样,那么符合要求的数字就是9和6.如果10个数字都没有对应相同的,则为空(即为"" ,而不是为0).
要求:用自定义函数写代码,这样我可以任意调用,本人不会VBA,根据以前请网友们写的代码,自己也编写了自定义函数,但是是逐个比较的,很笨的方法,运行效率不高,就是用mid分别找两个单元格第一个数字,两者比较,看相同与否,自己不会用for循环,呵呵,隔行如隔山啊.自定义函数形式是:
Function ProjectALL(r,c)'r是行号,c是列号
m1 = Cells(r - 1, c).Value'上一行数据
m2 = Cells(r, c).Value'本行数据
您的代码:使用for循环找吧
ProjectALL=
End Function
数据不是随机生成的,是事先做好的,这个不用管,数据是文本格式的.
PS:都23行D列与都24行D列 打错了,“都”应该是“第”
VBA找单元格对应重复的数字同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数
Function ProjectALL(r, c) 'r是行号,c是列号
m1 = Cells(r - 1, c).Value '上一行数据
m2 = Cells(r, c).Value '本行数据
l1 = Len(m1) 'm1长度
l2 = Len(m2) ‘m2长度
If l1 < l2 Then ’l1