2016-07-29 7 views
-3

Я очень надеюсь, что смогу получить вашу помощь. Я искал высоко и низко, что, вероятно, является простым решением.Извлечение одной строки данных из папки. TXT файлов в excel

У нас есть сотни файлов txt, которые все относятся к программам cnc. К сожалению, существует историческая нехватка контроля за строгой системой нумерации деталей и операций.

Мне нужно извлечь 3-ю и 4-ю строки txt из каждого файла в документ excel, чтобы мы могли оплатить некоторые и каталогизировать все для ссылок.

До сих пор ближе всего я нашел, чтобы то, что я после в потоке

Extract a single line of data from numerous text files and import into Excel

однако я не могу заставить его работать - мое знание Excel это хорошо, но не с помощью макросов. начало каждого текстового файла является

#1 <blank line> 
#2 % 
#3 O00000 (part description) 
#4 (part descriptio) 
#5 rest of program. 

. . . в соответствии с запросом ive включен код, который я пытаюсь изменить.

Private Sub CommandButton1_Click() 
    Dim filename As String, nextrow As Long, MyFolder As String 
    Dim MyFile As String, text As String, textline As String, prog As String 

    MyFolder = "M:\CNC Programs\Haas lathe programs\Haas ST30 programs\Programs\Programs in .txt format" 
    MyFile = Dir(MyFolder & "*.txt") 

    Do While MyFile <> "" 
     Open (MyFolder & MyFile) For Input As #1 
     Do Until EOF(1) 
      Line Input #3, textline 
      text = text & textline 
     Loop 
     Close #1 
     MyFile = Dir() 
     Debug.Print text 
     nextrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row + 1 
     Sheet1.Cells(nextrow, "A").Value = Mid(text, prog) 
     text = "" 'reset text 
    Loop 
End Sub 
+1

Добро пожаловать в StackOverflow. Обратите внимание, что это не бесплатная служба написания кода. Тем не менее, мы очень хотим помочь другим программистам (и претендентам) написать собственный код. Ознакомьтесь с разделами справки на странице [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). Вы также можете [совершить тур] (http://stackoverflow.com/tour) и заработать значок при этом. Впоследствии, пожалуйста, обновите свой вопрос кодом VBA, который вы написали до сих пор, чтобы выполнить задачу (задачи), которую вы хотите достичь. Кроме того, пожалуйста, уточните, почему ссылочные вопросы и ответы не решают вашу проблему. – Ralph

+0

Если вы не можете получить эту работу для работы, каковы шансы получить ответ, который будет практически одинаковым для работы? – pnuts

+0

Не могли бы вы рассказать о том, что именно не работает. Вы пытались отлаживать свой код за один шаг за раз? –

ответ

0

Поскольку у вас нет большого опыта работы с VBA, вот некоторые моменты вы можете захотеть Google и поместить результаты вместе

  • открыть текстовый файл в Excel VBA (вы должны начать с что, и попытаться прочитать один файл)
  • Loop через все файлы в определенной папке с Excel VBA

Ваш код должен сделать следующее.

  • получить список всех файлов, которые вы хотите загрузить
  • открыть каждый файл в этом списке
  • читать 3-ю и 4-ю строку из этого файла
  • скопировать строки, чтобы преуспеть.

Есть много примеров в Интернете, как только вы узнаете, как искать

+0

Спасибо за совет. Вы правы, я об этом мало знаю. Я начну смотреть на предложенную вами линию обучения! –

+0

Возможно, посмотрите некоторые видеоролики или руководства по отладке excel vba. Это поможет вам, сузить линию, где все пойдет не так. Например: правильно ли считывается значение из файла? Это написано в правой ячейке? aso –

0

через несколько часов и некоторую помощь от друга, мы пришли с этим, делает более или менее то, что мне нужно.

Я знаю, как я хочу улучшить его, мне просто нужно понять это сейчас. Опять же, я уверен, что это простой трюк. Настойчивость !!!

То, что я хочу сделать с этим сейчас, если вы можете, это взять в свою директорию
«M: \ программы ЧПУ Programs \ Haas Миллса \ переформатируйте Mill Programs .txt \» и сканировать все последующие папки для сказал .txt и извлечь одну и ту же информацию в книгу.

Если я выясню это, я снова обновлю сообщение. Спасибо, что посадили меня по правильному пути Мистер 832.

Private Sub CommandButton1_Click() 
    Dim MyMask As String, nextrow As Long, MyFolder As String 
    Dim MyFile As String, text As String, textline As String 
    Dim posCommentStart As String, posCommentFinish 
    Dim iLine As Integer 

MyFolder = "M:\CNC Programs\Haas Mills programs\All Mill Programs .txt format\HAAS MINI-MILL BALLPADS & BALLPINS\" 
MyMask = MyFolder & "*.txt" 
MyFile = Dir(MyMask) 

Do While MyFile <> "" 
    iLine = 0 
    Open (MyFolder & MyFile) For Input As #1 
    Do Until EOF(1) Or iLine >= 4 
     iLine = iLine + 1 
     Line Input #1, textline 
     If iLine >= 3 Then 
      text = text & textline 'second loop text is already stored -> see reset text 
     End If 

    Loop 
    Close #1 
    MyFile = Dir() 
    Debug.Print text 

    posCommentStart = InStr(text, "(") 
    posCommentFinish = InStr(text, ")") 

    If posCommentStart > 0 Then 

     nextrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1 

     ActiveSheet.Cells(nextrow, "A").Value = Left(text, posCommentStart - 2) 
     ActiveSheet.Cells(nextrow, "B").Value = Mid(text, posCommentStart +  1, posCommentFinish - posCommentStart - 1) 

    End If 

    text = "" 'reset text 

Loop 
End Sub 
+0

Вот одна из ссылок, которая может вам помочь. http://stackoverflow.com/questions/21583678/vba-trying-to-open-all-workbooks-in-a-folder вы также можете выполнить * поиск с помощью объекта fso. –

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