Excel工作表的单元格A1和B1中有两个数字,这两个数字中有些是相同的。现在,找出相同的数字并将其写入C1单元格,找出A1中的数字而不是B1中的数字并将其写入D1单元格,找出B1中的数字而不是A1中的数字并将其写入E1单元格。
比如下面的工作表图片:
不知道给的数字是不是都是这样一个规律,第一个原始数据的最后几位和第二个原始数据的前几位是一样的。如果这是规则,你可以给出下面这个具体例子的代码来实现它:
子分隔符()
Dim strFirst作为字符串
Dim strResult作为字符串
Dim StartNum为整数
Dim EndNum作为字符串
Dim i为整数,j为整数
str first=Left(Range(" B1 ", 1)
StartNum=InStr(1,Range(" A1 "), str first)
j=1
For i=StartNum To Len(Range("A1 ")
EndNum=Mid(Range("A1 "),I,1)
如果EndNum=Left(Range(" B1 ", j ),则
j=j 1
如果…就会结束
接下来我
如果j 1那么
strResult=Mid(Range(" A1 ", StartNum,i - 1)
如果…就会结束
单元格C1中的数据
范围(“C1”)。值=strResult
单元格D1中的数据
范围(“D1”)。value=Left(Range(" A1 ", StartNum-1)
细胞E1中的数据
范围(“E1”)。value=Right(Range(" B1 "), Len(Range(" B1 ")-j)
末端接头
代码非常简单,只需使用几个VBA函数。
讨论:
实际上,代码可以进一步简化,因为VBA还有一个数组函数(Split函数)。
如果想让它通用,可以把上面的代码转换成自定义函数,用相对量代替代码中的硬编码。
如果两个单元格中的数字不符合上述规则,则两个单元格中数字的中间部分可能相同,而其他部分不同;或者一个单元格中数字的结尾部分与另一个单元格中数字的中间部分相同;等一下。