VBA找单元格对应重复的数字同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 23:08:15
![VBA找单元格对应重复的数字同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数](/uploads/image/z/13972918-22-8.jpg?t=VBA%E6%89%BE%E5%8D%95%E5%85%83%E6%A0%BC%E5%AF%B9%E5%BA%94%E9%87%8D%E5%A4%8D%E7%9A%84%E6%95%B0%E5%AD%97%E5%90%8C%E4%B8%80%E5%88%97%E7%9A%84%E4%B8%8A%E4%B8%8B%E4%B8%A4%E8%A1%8C%E5%90%84%E6%9C%8910%E4%B8%AA%E6%95%B0%E5%AD%97%2C%E6%95%B0%E5%AD%97%E9%83%BD%E5%9C%A80-9%E4%B9%8B%E9%97%B4%2C%E4%BD%86%E6%98%AF%E9%A1%BA%E5%BA%8F%E6%98%AF%E6%9D%82%E4%B9%B1%E6%97%A0%E7%AB%A0%E7%9A%84%2C%E4%BE%8B%E5%A6%82%E7%AC%AC23%E8%A1%8CD%E5%88%97%E6%95%B0%E6%8D%AE%E6%98%AF0294631785%2C%E7%AC%AC24%E8%A1%8CD%E5%88%97%E6%95%B0%E6%8D%AE%E6%98%AF2398605471%2C%E9%82%A3%E4%B9%88%E9%83%BD23%E8%A1%8CD%E5%88%97%E4%B8%8E%E9%83%BD24%E8%A1%8CD%E5%88%97%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E6%95%B0)
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