Создать несколько текстовых файлов из ячеек Excel - PullRequest
0 голосов
/ 06 июня 2019

У меня есть текст, который я хочу использовать в качестве имени файла в столбце B, и содержимое, которое я хочу добавить к этим файлам в соседних ячейках в столбце C. Решение, вероятно, довольно простое, но код, который у меня есть сейчассоздает текстовые файлы с правильным именем, фактически ничего не записывая в файл.

У меня практически нет опыта работы с VBA, поэтому этот код на 100% основан на том, что я нашел на этом форуме

Sub CreateFiles()

    Dim sExportFolder, sFN
    Dim rName As Range
    Dim action As Range
    Dim oSH As Worksheet
    Dim oFS As Object
    Dim oTxt As Object

    'sExportFolder = path to the folder you want to export to
    'oSh = The sheet where your data is stored

    sExportFolder = "H:\"
    Set oSH = Sheet1

    Set oFS = CreateObject("Scripting.Filesystemobject")

    For Each rName In oSH.UsedRange.Columns("A").Cells
        Set action = rName.Offset(, 1)


        'Add .txt to the article name as a file name

        sFN = rName.Value & ".txt"
        Set oTxt = oFS.OpenTextFile(sExportFolder & "\" & sFN, 2, True)
        oTxt.WriteLine action.Value
        oTxt.Close
    Next

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Чтобы добавить к моему комментарию, вот как должен выглядеть ваш код, если вы смотрите в столбце B для имен файлов и в столбце C для значений:

Пожалуйста, укажите название вашего листа в коде

Sub CreateFiles()

    Dim sExportFolder As String, sFN As String
    Dim oSH As Worksheet
    Dim rName As Range
    Dim oFS As Object, oTxt As Object

    sExportFolder = "H:\"
    Set oSH = ThisWorkbook.Sheets("Your Sheet Name Here") '<-- set sheet name here
    Set oFS = CreateObject("Scripting.Filesystemobject")

    For Each rName In oSH.Range("B1:B" & oSH.Cells(Rows.Count, 2).End(xlUp).Row)
        If rName.Value <> "" Then
            sFN = rName.Value & ".txt"
            Set oTxt = oFS.OpenTextFile(sExportFolder & sFN, 2, True)
            oTxt.WriteLine rName.Offset(0, 1)
            oTxt.Close
        End If
    Next
End Sub
0 голосов
/ 06 июня 2019
Sub CreateFiles()

    Dim sExportFolder, sFN
    Dim rName As Range
    Dim action As Range
    Dim oSH As Worksheet
    Dim oFS As Object
    Dim oTxt As Object

    'sExportFolder = path to the folder you want to export to
    'oSh = The sheet where your data is stored

    sExportFolder = "H:\"
    Set oSH = Worksheets("Sheet1")

    Set oFS = CreateObject("Scripting.Filesystemobject")

    For Each rName In oSH.UsedRange.Columns("B").Cells
        Set action = rName.Offset(, 1)


        'Add .txt to the article name as a file name

        sFN = rName.Value & ".txt"
        Set oTxt = oFS.OpenTextFile(sExportFolder & "\" & sFN, 2, True)
        oTxt.WriteLine action.Value
        oTxt.Close
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...