Excel表格中vba宏帮助你按条件拆分两个单元格中的数字

时间:2016.05.04 发布人:toanzho7808

Excel表格中vba宏帮助你按条件拆分两个单元格中的数字

已解决问题

谷歌toanzho7808用户在2016.05.04提交了关于“毛晓彤Excel表格中vba宏帮助你按条件拆分两个单元格中的数字”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-20T09:09:26。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,不知道说什么,送你一朵小红花吧 !

希望以下的回答,能够帮助你。

第1个回答

用户名:47316..  

  Excel工作表的A1单元格和B1单元格中有两个数字,这两个数字有一部分相同,现在要找出其中相同的数字并写入单元格C1,找但距于沉营外送出A1中有而B1中没有的数字并写入单元格D1,找出B1中有而A1中没有的数字并写入单元格E1。

问答  如下面的工作表图片矿知转客:

  我不知道给品庆出的数字是否都是按这样的规律,即第一个原始**的后面几位数与第二个原始**的前面几位数相同。如果是这个规律的话,则可以就这个具体的例子给出下面的代码来实现:

  SubSeparateNumber()

  DimstrFirstAsSt王广状ring

  DimstrResultAsString

  DimStartNumAsInteger

  DimEndNumAsString

  DimiAsInteger,jAsInteger

  strFirst=Left(Range(”B1″),1)

  S督水更句爱tartNum=InStr(1,Range(”A1″),strFirst)

  j=1

  Fori=StartNumToLen(Range(”A1″))

  EndNum=掌叫纪路至以易它示控南Mid(Range(”A1″),析给味宗演州例力知尼i,1)

  IfEndNum=Left(Ra病剧意良照nge(”B1″)种志获推提月动效为差它,j)Then

  j=j维凯+1

  EndIf

  Nexti

  Ifj>1Then

  strResult=Mid(Range(”A1″),Sta兴断括活仅rtNum,i-1)

  EndIf

  ‘单元格C1中的**

  Range(”C色材试娘坚氢演宜沉置1″).Value=strResult

  ‘单元格D1中的**

  Range(”D1″).Value=Left(气等希续主持胜Range(”A1″)超,StartNum-1)

  ‘单元格E1中的**

  Range(”E1″).Value=Right(Range(”B1″),Len(Range(”B1″))-j)

  EndSub

  代码很简单,只是运用了几个VBA函数。

  讨论:

  其实代码可以进一步简化,因为VBA还有一个数组函数(Split函数)。

  如果要将其变为通用的,则话吗矛陈完抗混可将上述代码转化滑为自定义函数,并用相对量代替代码中的硬编码。

  两个单元格中的数到质属责接束玉城字如果不是按上面提到的规律,则可能两个单元格中的数字中间部分相同,而其它部分不同;或者一个单元格中的数字结尾部分和另一个单元格中的数字的中间部分相同;等等。