VBA实现字符子串解析

       今天老板交代的任务比较单调,给了我一个xml文件的文件夹,一个里面写满了xxx.sc函数名的txt文件,让我查找它们之间除掉后缀名之后的互相匹配情况,统计到一个excel表格里。我看看了,没仔细想就觉得很简单就开始做了起来。
       首先要把他们分别读出来,xml的文件名,和txt里面的函数名,读成单独的元素,然后才方便进行比对,想了想实现,打开了visual studio开始做,很快就完成了,期间发现.net2003的时候,String连Contains方法都没有的,本来想自己实现一个,后来耍了个小聪明,用它有的IndexOf的返回值判断代替了Contains,偷了回懒。
       等到忙好这些的时候,excel里出现了长短不一的两列,现在我要把这些xxx.xml和yyy.sc的xxx和yyy分别放到对方的列里面查找,怎么办呢?用.net也可以实现,不过想到最近都在接触的vba,就打算尝试用vba自身的函数来实现,于是拿出同事借给我看的VB与VBA翻了翻,结果没找到,后来硬着头皮去问一个师兄,师兄给我搜出来Instr的函数,我就在他的指导下完成了。
       代码本身是很简单的,如同各种语言的hello world一样,不过由于是我接触的第一个VBA编程的例子,觉得应该留下来,算是纪念一下吧。

None.gif ' 用途就是将LITTLESTR放到Excel的另外一列里面的每一行去看是不是这一行的子串。
ExpandedBlockStart.gifContractedBlock.gif
Function SUBSTR() Function SUBSTR(BIGSTR As Integer, LITTLESTR As StringAs String
InBlock.gif    
Dim I As Integer
InBlock.gif    I 
= 1
InBlock.gif    
While Sheets(1).Cells(I, BIGSTR) <> ""
InBlock.gif    
If InStr(1, Sheets(1).Cells(I, BIGSTR), LITTLESTR) <> 0 Then
InBlock.gif        SUBSTR 
= "FOUND"
InBlock.gif        
GoTo PEND
InBlock.gif    
End If
InBlock.gif    I 
= I + 1
InBlock.gif    Wend
InBlock.gif        SUBSTR 
= "NOT FOUND"
InBlock.gifPEND:
ExpandedBlockEnd.gif
End Function

None.gif

转载于:https://www.cnblogs.com/rabbitzhang/archive/2007/04/06/703133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值