Учебники

VBA — Текстовые файлы

Вы также можете прочитать файл Excel и записать содержимое ячейки в текстовый файл, используя VBA. VBA позволяет пользователям работать с текстовыми файлами двумя способами:

  • Объект файловой системы
  • используя команду записи

Объект файловой системы (FSO)

Как следует из названия, FSO помогают разработчикам работать с дисками, папками и файлами. В этом разделе мы обсудим, как использовать FSO.

Sr.No. Тип объекта и описание
1

Привод

Драйв — это объект. Содержит методы и свойства, которые позволяют собирать информацию о диске, подключенном к системе.

2

приводы

Диски это коллекция. Он предоставляет список дисков, подключенных к системе, физически или логически.

3

файл

Файл является объектом. Он содержит методы и свойства, которые позволяют разработчикам создавать, удалять или перемещать файл.

4

файлы

Файлы это коллекция. Он предоставляет список всех файлов, содержащихся в папке.

5

скоросшиватель

Папка — это объект. Он предоставляет методы и свойства, которые позволяют разработчикам создавать, удалять или перемещать папки.

6

Папки

Папки это коллекция. Он предоставляет список всех папок в папке.

7

TextStream

TextStream — это объект. Это позволяет разработчикам читать и писать текстовые файлы.

Привод

Драйв — это объект. Содержит методы и свойства, которые позволяют собирать информацию о диске, подключенном к системе.

приводы

Диски это коллекция. Он предоставляет список дисков, подключенных к системе, физически или логически.

файл

Файл является объектом. Он содержит методы и свойства, которые позволяют разработчикам создавать, удалять или перемещать файл.

файлы

Файлы это коллекция. Он предоставляет список всех файлов, содержащихся в папке.

скоросшиватель

Папка — это объект. Он предоставляет методы и свойства, которые позволяют разработчикам создавать, удалять или перемещать папки.

Папки

Папки это коллекция. Он предоставляет список всех папок в папке.

TextStream

TextStream — это объект. Это позволяет разработчикам читать и писать текстовые файлы.

Привод

Диск — это объект, который обеспечивает доступ к свойствам конкретного диска или общей сетевой папки. Следующие свойства поддерживаются объектом Drive

  • Доступное пространство
  • DriveLetter
  • Тип вождения
  • Файловая система
  • Свободное место
  • Готов
  • Дорожка
  • Корневая папка
  • Серийный номер
  • ShareName
  • Общий размер
  • VolumeName

пример

Шаг 1. Прежде чем приступить к написанию сценариев с использованием FSO, мы должны включить Microsoft Scripting Runtime. Чтобы сделать то же самое, перейдите в Инструменты → Ссылки, как показано на следующем снимке экрана.

Excel FSO в VBScript

Шаг 2. Добавьте «Microsoft Scripting RunTime» и нажмите «ОК».

Excel FSO в VBScript

Шаг 3 — Добавьте данные, которые вы хотели бы записать в текстовый файл, и добавьте командную кнопку.

Excel FSO в VBScript

Шаг 4 — Теперь пришло время для сценария.

Private Sub fn_write_to_text_Click()
   Dim FilePath As String
   Dim CellData As String
   Dim LastCol As Long
   Dim LastRow As Long
  
   Dim fso As FileSystemObject
   Set fso = New FileSystemObject
   Dim stream As TextStream
  
   LastCol = ActiveSheet.UsedRange.Columns.Count
   LastRow = ActiveSheet.UsedRange.Rows.Count
    
   ' Create a TextStream.
   Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
  
   CellData = ""
  
   For i = 1 To LastRow
      For j = 1 To LastCol
         CellData = Trim(ActiveCell(i, j).Value)
         stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
      Next j
   Next i
  
   stream.Close
   MsgBox ("Job Done")
End Sub

Выход

При выполнении сценария убедитесь, что курсор помещен в первую ячейку рабочего листа. Файл Support.log создается, как показано на следующем снимке экрана в разделе «D: \ Try».

Excel FSO в VBScript

Содержимое файла показано на следующем снимке экрана.

Excel FSO в VBScript

Написать команду

В отличие от FSO, нам НЕ нужно добавлять ссылки, однако мы НЕ сможем работать с дисками, файлами и папками. Мы сможем просто добавить поток в текстовый файл.

пример

Private Sub fn_write_to_text_Click()
   Dim FilePath As String
   Dim CellData As String
   Dim LastCol As Long
   Dim LastRow As Long
  
   LastCol = ActiveSheet.UsedRange.Columns.Count
   LastRow = ActiveSheet.UsedRange.Rows.Count
    
   FilePath = "D:\Try\write.txt"
   Open FilePath For Output As #2
  
   CellData = ""
   For i = 1 To LastRow
      For j = 1 To LastCol
         CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
         Write #2, CellData
      Next j
   Next i
  
   Close #2
   MsgBox ("Job Done")
End Sub

Выход

После выполнения сценария файл «write.txt» создается в папке «D: \ Try», как показано на следующем снимке экрана.

Excel FSO в VBScript

Содержимое файла показано на следующем снимке экрана.