2013-12-05 2 views
0

Я пишу код в VBA, чтобы посмотреть в файл для символов, которые нечетные входы в макрос, после того, как макрос находит символы, предоставленные пользователем, которого я хочу он извлекает всю эту линию и проходит мимо нее в листе в excel, беря первые символы и помещая их в ячейку 1a, затем беря следующий набор символов, которые разделены пробелом в тексте и помещают их в другую ячейку, здесь что я до сих пор и хочу заменить строку 17 на извлечение данных;Найти текст в файле, копировать и вставлять в ячейки Excel VBA

Dim oFSO As Object 
    Dim arrData() As String 

    Sub test() 
    Dim f As Integer 
    Dim IngLine As Long 
    Dim strLine As String 
    Dim bInFound As Boolean 
    f = FreeFile 
    Tfile = "C:\TAXETI.TXT" 
    staffdat = InputBox(Prompt:=" Please enter the staff number", Title:="Load Staff Data") 
     Open Tfile For Input As #f 
      Do While Not EOF(f) 
        IngLine = IngLine + 1 
        Line Input #f, strLine 
        If InStr(1, strLine, staffdat, vbBinaryCompare) > 0 Then 
        MsgBox "Search string found in line" & IngLine, vbInformation 
        bInFound = True 
        Exit Do 
        End If 
      Loop 
      Close #f 
      If Not bInFound Then 
      MsgBox "Search string not found", vbInformation 
      End If 
    End Sub 

ответ

1

Предлагаю вам изучить функцию Split().

MSDN Reference

Another example

Я думаю, ваш код будет в конечном итоге, как следующее # 17 (Вы должны либо обрезать/определить, где «разметить» вашей линии, в зависимости от того, что ваш файл выглядит вход как):

If InStr(1, strLine, staffdat, vbBinaryCompare) > 0 Then 
foundArr = Split(strLine, " ")'change " " to whatever fits your needs 
For i = LBound(foundArr) to UBound(foundArr) 
    'enter each string into a cell, etc 
Next i 
+0

Спасибо Max Alcala! это сделало трюк! –

+0

Нет проблем! Похоже, что у вас уже была решена большая часть проблемы. –

+0

Эй, Макс, как насчет того, если однажды функция instr найдет символ, я хочу, чтобы он прошел 3 строки вниз и выполнил функцию mid(), что бы я использовал для этого? –

Смежные вопросы