Здравствуйте!
Есть файл u8_u5_vba_2.txt.out (в общем-то их несколько чуть разных). В нём есть строка " k-eff is 0.955331" (без кавычек). Необходимо, чтобы макрос анализировал файл, находил в нём нужную строку, брал из неё значение (число 0.955331) и помещал его в ячейку.
Результатом ковыряния в течении нескольких дней стало несколько нерабочих вариантов «кодов», один предоставлен на обозрение. Дальнейший поиск ни к чему не привёл в силу моего скудоумия и накопившейся усталости - просто не могу сообразить в чём дело. Есть крайний вариант сначала импортировать весь текстовый файл в Excel и далее обрабатывать уже импортированный текст, но этот вариант мне не нравится, так как файлов много и сами они большие (прикреплённый файл урезан).
Кому не сложно, внесите правки, укажите на ошибку или направьте куда следует.
За корявость можете пинать что есть сил и сколько хотите, главное - подскажите.
Заранее благодарю.
Есть файл u8_u5_vba_2.txt.out (в общем-то их несколько чуть разных). В нём есть строка " k-eff is 0.955331" (без кавычек). Необходимо, чтобы макрос анализировал файл, находил в нём нужную строку, брал из неё значение (число 0.955331) и помещал его в ячейку.
Результатом ковыряния в течении нескольких дней стало несколько нерабочих вариантов «кодов», один предоставлен на обозрение. Дальнейший поиск ни к чему не привёл в силу моего скудоумия и накопившейся усталости - просто не могу сообразить в чём дело. Есть крайний вариант сначала импортировать весь текстовый файл в Excel и далее обрабатывать уже импортированный текст, но этот вариант мне не нравится, так как файлов много и сами они большие (прикреплённый файл урезан).
Кому не сложно, внесите правки, укажите на ошибку или направьте куда следует.
Код |
---|
Dim strLine As String 'Одна строка файла Dim strСurСhar As String 'Анализируемый символ строки файла Dim strValue As String 'Значение для записи в ячейку Dim lngRow As Long 'Номер текущей строки Dim intCol As Integer 'Номер текущего столбца Dim i As Integer Dim Result As Boolean Open "L:\vba85\u8_u5_vba_2.txt.out" For Input As #2 Do Until EOF(2) 'Result = True 'По-хорошему до первого необходимого результата Line Input #2, strLine For i = 1 To Len(strLine) strCurChar = Mid(strLine, i, 1) strValue = strValue + strCurChar Next i Result = strValue Like " k-eff is *" If Result = True Then Range("C167").Activate ActiveCell.Offset(lngRow, intCol) = Mid(strValue, 13, 8) Else 'MsgBox "XYU" End If intCol = 0 lngRow = lngRow + 1 Loop Close #2 |
Заранее благодарю.