使用VBA在文本文件中查找多次出现的字符串?

时间:2015-03-31 02:14:39

标签: excel vba

我有一个大的文本文件,其中包含文本_ _Z_1_:_,后跟数据,如:

_ _Z_1_:_0_1_3_4_2                      

 Fixed Totaliser Period 1 Reset Report  

 NET sales          57        £202.05   

 CASH in Drawer     55        £172.35   
 CREDIT in Drawer   2         £29.70    
 TOTAL in Drawer    57        £202.05

每个文件中出现两次_ _Z_1_:_文本。
我试图让宏找到_ _Z_1_:_,然后提取现金金额(在上面的情况下£172.35 )和信用等。

我尝试使用代码来指定文本文件,然后使用InStr函数,但它只会识别第一次出现。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您的InStr function将返回第一次出现的位置。使用该位置开始搜索第二个。

dim bffr as string, p as long
bffr = (◄ assign the text here)
p = instr(p + 1, bffr, "_ _Z_1_:_", vbtextconpare)
do while cbool(p)

  '_ _Z_1_:_ was found; process it based upon the starting position p

  'see if there are other occurrences of _ _Z_1_:_
  p = instr(p + 1, bffr, "_ _Z_1_:_", vbtextconpare)
loop

通过在最后一个位置之前开始一个字符来不断推进搜索,您会发现您将遍历保存文本的缓冲区并为每次出现选择一个新的p。当无法再找到它时,InStr将零返回到p。