Excel vba для экспорта содержимого ячейки в файл TXT - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть файл Excel (https://www.dropbox.com/s/hv9u68s136es190/Example2.xlsx?dl=0), в котором в столбце A указаны все лица и в ячейке рядом с текстом имени (столбец B). Я хочу сохранить для каждого человека текстовый файл, содержащий текст в ячейке рядом с именем. Имя файла должно называться как имя человека. Так что в этом случае у меня будет три текстовых файла. Я не знаю, как управлять этим с помощью VBA в Excel. Может ли кто-нибудь помочь мне с этим?

enter image description here

1 Ответ

1 голос
/ 28 февраля 2020

Попробуйте этот код, пожалуйста. Но вы должны сначала попробовать что-то самостоятельно. Обычно мы помогаем людям исправить свой код и выучить ...

Текстовые файлы будут названы так же, как имена людей в столбце А. Папка, в которой они будут сохранены, будет той из рабочей книги, в которой хранятся активные лист. Конечно, вы можете определить это так, как вам нужно.

Option Explicit

Sub SaveTxtNamePlusTekst()
  Dim sh As Worksheet, lastR As Long, i As Long, strPath As String
  Set sh = ActiveSheet     ' use here the sheet you need
  strPath = sh.Parent.path 'you can define here the path you wish...
  If Dir(strpath, vbDirectory) = "" Then MsgBox "The folder path is not valid...": Exit Sub
  lastR = sh.Range("A" & Cells.Rows.Count).End(xlUp).row 'Last row in A:A
  For i = 2 To lastR
    'calling a Sub able to create a text file in a folder and put text in it
    WriteText sh.Range("A" & i).value, strPath, sh.Range("B" & i).value
  Next i
End Sub

Private Sub WriteText(strName As String, strPath As String, strText As String)
  Dim filePath As String
  filePath = strPath & "\" & strName & ".txt" 'building the txt file path
  FreeFile 1

    Open filePath For Output As #1
      Print #1, strText 'write the text
    Close #1
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...