Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Импорт данных из txt файла через VBA, VBA макрос
 
Уважаемые форумчане, выручайте пожалуйста.
Имеем много колхозов с их данными, которые выглядят примерно как в текст.txt и задача перенести это все безобразие в excel файл примерно такой как результаты.xlsx.
Подскажите в какую сторону хотя бы копать. И вообще возможно такое сделать средствами VBA?
 
Возможно. Только муторно. Нужна таблица соответствий коды - что они обозначают.
Да и Вы десятикратно занижаете результат деятельности своих колхозов, если верить файлу-примеру.
 
Спасибо за ответ! Они в центнерах дают ))
Вся сложность в макросе, это как привязать Имя в ячейку и ее значение при переносе.
Если возможно, то может объясните как перенести из текстового ХЗ2 13524/1946.38 в excel файл.
 
Иван Петрович, вот написал начало сего действа:
Код
Sub Урожай()
Dim txt$, arr(), a&, fw$, c%, aa, RG As Object, arr1()
fw = "X:\Users\Anchoret\Downloads\текст.txt" 'путь к файлу
c = FreeFile 'на всякий пожарный получаем номер свободного потока для чтения
ReDim arr(1 To 1): a = 1 'первичное определение массива
Set RG = CreateObject("VBScript.RegExp")
RG.Pattern = "\d" 'маска для проверки на наличие каких-либо цифр в строке
Open fw For Input As c 'открываем файл (фактически файл будет закрыт)
Do Until EOF(c) 'если не достигли дна, т.е. не добрались до последней строки
  Line Input #c, txt 'читаем строку из файла в переменную
  ReDim Preserve arr(1 To a) 'расширяем ранее созданный массив
  If Len(txt) > 0 Then 'если длина строки больше 0
    If RG.Test(txt) Then 'проверяем наличие цифр в строке по ранее созданной маске
      aa = Split(txt, " "): arr(a) = aa 'разбиваем строку на одномерный массив
    Else: arr(a) = txt 'если цифр нет, то записываем в массив саму строку
    End If
  End If
  a = a + 1
Loop
Close #c 'закрываем файл

End Sub

Через окно "Locals" в VBE можно посмотреть что и на каком этапе происходит с переменными. F8 для пошагового выполнения макроса в VBE.

 
Огромное спасибо! Буду изучать ))
Страницы: 1
Читают тему (гостей: 1)
Наверх