Страницы: 1
RSS
макросом сменить формат всех файлов в папке с .TXT на .CSV
 
добрый день. существует ли макрос, который может сменить формат всех файлов, которые находятся в одной папке, например, по адресу C:\5000, с  .txt на .csv? если нет, то может кто нибудь напишет код такого макроса.
 
не знаю существует-ли такой макрос, но точно знаю как это можно сделать простой DOS-командой
1. жмете кнопку Windows
2. в поле выполнить набираете
CMD, жмете Enter
3. откроется страшное (черное) окно, не пугаетесь
4. в открывшемся окне набираете
rename c:\5000\*.txt *.csv, жмете Enter
5. открываете папку c:\5000, смотрите что там получилось
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
copper-top, попробуйте такой макрос:
Код
Sub replaceTxts()
    Dim fso As New FileSystemObject, curFolder As folder, curFile As File
    folderPath = "C:\5000\"
    Set curFolder = fso.GetFolder(folderPath)
    For Each curFile In curFolder.Files
        If Right(curFile.Path, 4) = ".txt" Then
            curFile.Copy Replace(curFile.Path, ".txt", ".csv")
            curFile.Delete
        End If
    Next curFile
End Sub

В файле должен быть Reference на Microsoft Scripting Runtime
Изменено: tolstak - 02.08.2017 12:14:32
In GoTo we trust
 
Ігор Гончаренко, спасибо. с CMD можно же и с экселя работать. где то у меня был похожий макрос.
Цитата
Ігор Гончаренко написал:
страшное (черное) окно, не пугаетесь
для меня черный цвет - приятный цвет.
 
Создаете объект
Код
Set fso = CreateObject("Scripting.FileSystemObject")

Читаете имена файлов
если имя файла заканчивается на...
переименовать

всё.

Скрытый текст
Изменено: panix1111 - 02.08.2017 12:16:12
Мы в Екселе не работаем, мы в нём живём!
 
tolstak, спасибо. сработало.
Цитата
panix1111 написал:
Создаете объект
я макрос написать дальше не смогу. в принципе, уже есть варианты.
спасибо Всем.
 
Если лень делать DOS'ом, и очень надо макрос, тады ой.
Код
Sub Мяу()
    Dim oldName$, newName$, fName$
    fName = "C:\Новая папка (2)\"
    oldName = Dir(fName & "*.txt", vbDirectory)
    Do While oldName <> ""
        newName = Replace(oldName, ".txt", ".csv")
        Name fName & oldName As fName & newName
        oldName = Dir
        DoEvents
    Loop
End Sub
 
RAN, спасибо. у меня уже все файлы тхт кончились :) , так что проверю позже. можно же и обратно переименовать с csv в txt. :)  
 
Код
Sub XML_Âûãðóçêà()
    Dim fso As Object
    Dim txt As Object
    Dim cell As Range
       Set fso = CreateObject("Scripting.FileSystemObject")
    Set txt = fso.CreateTextFile("C:\1.XML", True, True)
    For Each cell In Range("M36")
        txt.WriteLine cell
    Next
     
    txt.Close
    Set txt = Nothing
    Set fso = Nothing
   
End Sub

Подскажите как сделать что бы Файл вместо пути D:\1.XML,

выдавал окно с запросом куда сохранить?

Изменено: drauzer - 25.09.2017 11:16:31
 
Вопрос не по теме
Страницы: 1
Читают тему
Наверх