VBA实现字符子串解析

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

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

posted @ 2007-04-06 19:57  Raymond Zhang  阅读(1998)  评论(1编辑  收藏  举报