Страницы: 1
RSS
Как выполнить экспорт столбца Excel в файл *.txt
 
Здраствуйте! Столкнулся с задачей создания текстового файла из листа Excel
Вопрос
как одним кликом по кнопке создать текстовый файл с данными из первого столбца
в той же папке, где находится сам исходник. Например в категории C:\MIDI.

Есть ли средства в VBA Excel которые помогут созданный таким образом файл sample.txt обработать с помощью программы находящейся в папке
Цитата
С:\Windows\t2mfXP.exe
То есть действия попунктно:
1) Запускаем командную строку Пуск\Выполнить набираем cmd
2) Вводим в появившейся командной строке
C:\Documents And Settings\Имя пользователя>cd C:\MIDI
Нажатие Enter
C:\MIDI>t2mfXP.exe sample.txt sample.mid
Нажатие Enter
Создание файла завершено успешно

Помогите с решением задачи!
Изменено: Vrajadas - 13.07.2013 11:55:15
 
А так не пробовали спросить?
 
:D см. ниже
Изменено: Vrajadas - 13.07.2013 11:53:14
 
Но вопрос немножечко посложней
Согласен, что после долгих "танцев с бубном" я смогу создать этот несчастный файл

А вот смогу ли работать с командной строкой без помощи опытного программиста это большой вопрос...
Изменено: Vrajadas - 13.07.2013 11:54:36
 
Первый вопрос вроде решился  :)
Код
Private Sub CommandButton1_Click()
    On Error Resume Next
    Set FSO = CreateObject("scripting.filesystemobject")
    ' создаём главную папку
    BaseFolder$ = ThisWorkbook.Path & "\MIDI\": MkDir BaseFolder$
    MkDir BaseFolder$
    ' создаём файл в кодировке Unicode
    Set ts = FSO.CreateTextFile(BaseFolder$ & "sample.txt", True)
    ts.Close
    With CreateObject("Scripting.FileSystemObject").OpenTextFile(BaseFolder$ & "sample.txt", 8)
       .writeline Join(Application.Transpose([a2:a806].Value), vbLf)
       .Close
    End With
    Set ts = Nothing: Set FSO = Nothing
    MsgBox "Файлы созданы, и помещены в папку" & vbNewLine & BaseFolder$, vbInformation, "Готово"
    ' открываем папку с файлом
    CreateObject("wscript.shell").Run "explorer.exe /e, """ & BaseFolder$ & """"
End Sub


Осталось запустить программно командную строку....
 
Смотрите в сторону Shell. А зачем командную строку?
 
Код
Shell "cmd.exe /t:0f /k cd C:\MIDI" & vbCr 

в папку вышел а как запустить теперь программу не знаю...
Цитата
C:\MIDI>t2mfXP.exe sample.txt sample.mid
 
В коде сообщение #5 вместо строки:
CreateObject("wscript.shell"  )  .Run "explorer.exe /e, """ & BaseFolder$ & """"

нужно записать 2 строки кода:
Const PATH = "C:\MIDI"
CreateObject("wscript.shell"  )  .Run PATH & "t2mfXP.exe " & PATH & "sample.txt " & PATH & "sample.mid", 0, True


при этом будет выполнена команда:
C:\MIDI\t2mfXP.exe C:\MIDI\sample.txt C:\MIDI\sample.mid
Изменено: ZVI - 01.08.2013 04:46:38
 
Спасибо Вам за ответ!
К сожалению приведенный код не срабатывает...
Точнее файл *.mid не создается
Может дело в том что программный файл находится здесь:
С:\Windows\t2mfXP.exe
а возможно и в том, что программа работает только из командной строки....
если выполнить в командной строке команду:
C:\MIDI>t2mfXP.exe sample.txt sample.mid - то файл незамедлительно появляется

может кто-то сможет найти решение?
PS. На всякий случай прикладываю рабочие файлы
Изменено: Vrajadas - 14.07.2013 05:15:45
 
Цитата
ZVI пишет:
В коде сообщение #5 вместо строки:
CreateObject("wscript.shell")  .Run "explorer.exe /e, """ & BaseFolder$ & """"

нужно записать 2 строки кода:
Const PATH = "C:\MIDI"
CreateObject("wscript.shell")  .Run PATH & "t2mfXP.exe " & PATH & "sample.txt " & PATH & "sample.mid", 0, True

при этом будет выполнена команда:
C:\MIDI\t2mfXP.exe C:\MIDI\sample.txt C:\MIDI\sample.mid
Да все работает c небольшими поправками!
Const PATH1 = "C:\WINDOWS"
Const PATH = "C:\MIDI"
CreateObject("wscript.shell").Run PATH1 & "t2mfXP.exe " & PATH & "sample.txt " & PATH & "sample.mid", 0, True

Но при этом нужно чтобы в директории C:\MIDI\ уже находился пустой файл с расширением *.mid
Изменено: Vrajadas - 14.07.2013 06:28:22
 
Код
Sub Создать_mid()
    On Error Resume Next
    Set FSO = CreateObject("scripting.filesystemobject")
    ' создаём главную папку
    BaseFolder$ = "C:\MIDI\": MkDir BaseFolder$
    MkDir BaseFolder$
    ' создаём текстовый файл в кодировке Unicode
    Set ts = FSO.CreateTextFile(BaseFolder$ & "sample.txt", True)
    ts.Close
    ' заполняем его данными
    With CreateObject("Scripting.FileSystemObject").OpenTextFile(BaseFolder$ & "sample.txt", 8)
       .writeline Join(Application.Transpose([a2:a806].Value), vbLf)
       .Close
    End With
    ' создаём пустой файл *.mid
    Set ts = FSO.CreateTextFile(BaseFolder$ & "sample.mid", True)
    ts.Close
    Const PATH1 = "C:\WINDOWS\"
    Const PATH = "C:\MIDI\"
    ' создаем рабочий файл *.mid
    CreateObject("wscript.shell").Run PATH1 & "t2mfXP.exe " & PATH & "sample.txt " & PATH & "sample.mid", 0, True
    Set ts = Nothing: Set FSO = Nothing
    MsgBox "Файлы созданы, и помещены в папку" & vbNewLine & BaseFolder$, vbInformation, "Готово"
    ' открываем папку с файлом
    CreateObject("wscript.shell").Run "explorer.exe /e, """ & BaseFolder$ & """"
End Sub


В итоге все-таки получилось!!!  :D   :D   :D  
Особая благодарность Владимиру! Точное попадание в цель как всегда.

Единственный тонкий момент: хорошо бы перед выполнением скрипта проверить наличие самой программы по адресу: С:\Windows\t2mfXP.exe
и добавить автозапуск готового файла в проигрывателе, например в Windows Media
Изменено: Vrajadas - 14.07.2013 07:04:32
 
Проверка наличия t2mfXP.exe
Код
If Dir("С:\Windows\t2mfXP.exe") = "" Then
  MsgBox "Не найден файл: t2mfXP.exe", vbCritical, "Ошибка"
  Exit Sub
End If


Запуск sample.mid программой, зарегистрированной для MID по умолчанию
Код
If Dir(PATH & "sample.mid") <> "" Then
  CreateObject("wscript.shell").Run PATH & "sample.mid"
End If
 
Спасибо!!!  :)  :)  :)
Страницы: 1
Читают тему
Наверх