2015-03-31 4 views
0

У меня есть большой текстовый файл, который содержит текст _ _Z_1_:_ следуют данные, такие как:Найти несколько вхождения строки в текстовый файл с помощью VBA?

 
_ _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, но она будет идентифицировать только первое вхождение. Любая помощь оценивается.

+2

Опубликовать код, который вы пробовали. Измените свой вопрос, не добавляйте его в комментарий. – L42

ответ

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 

Постоянно опережение поиска, начиная один символ перед последней позицией он был найден вы будете ходить через буфер держа текст и подобрать новый р для каждого случая. Когда он больше не может быть найден, InStr возвращает ноль в p.