Excel工作表的单元格A1和单元格B1中有两个数字。这两个数字中有一些是相同的。现在,找出相同的数字并将其写入C1单元格,找出A1中的数字但不要写入B1中的数字并将其写入D1单元格,找出B1中的数字但不要写入A1中的数字并将其写入E1单元格。
如下面的工作表图片:
不知道给出的数字是否都遵循第一个原始数据的最后几个数字和第二个原始数据的前几个数字相同的规律。如果这是规则,可以给出下面的代码来实现这个具体的例子:
子分离成员()
第一个字符串变暗
将结果作为字符串变暗
将起始数字调成整数
将结束编号设为字符串
将I调成整数,将j调成整数
strFirst=左侧(范围(“B1”),1)
StartNum=InStr(1,范围(“A1”),strFirst)
j=1
对于i=起始数至透镜(范围(“A1”)
EndNum=中(范围(“A1”),I,1)
如果端号=左(范围(“B1”),j)那么
j=j 1
如果…就会结束
接下来我
如果j 1,那么
strResult=中(范围(“A1”),起始数,i - 1)
如果…就会结束
“细胞C1的数据
范围(“C1”)。值=strResult
“细胞D1的数据
范围(“D1”)。值=左(范围(“A1”),起始数- 1)
E1细胞中的数据
范围(“E1”)。值=右侧(范围(“B1”)、透镜(范围(“B1”))-j)
末端接头
代码非常简单,只是使用了几个VBA函数。
讨论:
实际上,代码可以进一步简化,因为VBA还有一个数组函数(Split函数)。
如果想让它通用,可以把上面的代码转换成自定义函数,用相对量替换代码中的硬编码。
如果两个单元格中的数字不遵循上述规则,则两个单元格中数字的中间部分可能相同,但其他部分不同。或者一个单元格中数字的结尾部分与另一个单元格中数字的中间部分相同;等一下。