我有一个大的文本文件,其中包含文本_ _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
函数,但它只会识别第一次出现。任何帮助表示赞赏。
答案 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。