Код Visual Basic, который проходит по папке и преобразует файлы .csv в файлы .txt - PullRequest
0 голосов
/ 01 сентября 2018

Привет , поскольку в заголовке указано, что мне нужен код Visual Basic, который просматривает папку и выполняет поиск, CSV, а затем преобразует файлы CSV в текстовые файлы. Я нашел этот код, но он работает только для один файл:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile("c:\yourfolder\conv.csv")
Dim objOut : Set objOut = objFSO.CreateTextFile("C:\yourfolder\new_conv.csv")

arrData = objFile.ReadAll
objOut.Write Replace(arrData,",",vbTab)
objFile.Close
objOut.Close

1 Ответ

0 голосов
/ 01 сентября 2018

Это грубое представление о том, как будет выглядеть его преобразование в дополнительную подпрограмму по отношению к вашему коду. Я уверен, что есть лучшие способы, но они написаны так, чтобы напоминать ваш код. Например, улучшением будет реализация класса, в котором есть метод convert, а не передача ссылок вокруг.

Вы также, вероятно, хотите реализовать процедуру очистки для удаления csvs?

Option Explicit
Public Sub test()
    Dim objFSO As Object, objFile As Object, folder As Object

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set folder = objFSO.GetFolder("C:\Users\User\Desktop\TestFolder")

    For Each objFile In folder.Files
        If objFSO.GetExtensionName(objFile) = "csv" Then
            CreateTextFile objFile, objFSO
        End If
    Next
End Sub

Public Sub CreateTextFile(ByVal objFile As Object, ByVal objFSO As Object)
    Dim objOut As Object, arrData As String, path As String
    path = objFile.path
    Set objFile = objFSO.OpenTextFile(objFile)
    Set objOut = objFSO.CreateTextFile(Left$(path, InStr(path, ".csv") - 1) & ".txt")

    arrData = objFile.ReadAll
    objOut.Write Replace(arrData, ",", vbTab)
    objFile.Close
    objOut.Close
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...