VBA Написати текстовий файл | Запишіть дані Excel у текстові файли за допомогою коду VBA

Excel VBA Написати текстовий файл

У VBA ми можемо відкрити або прочитати або написати текстовий файл, писати текстовий файл означає дані, які ми маємо на аркуші Excel, і ми хочемо, щоб вони були текстовим файлом або файлом блокнота. Існує два способи зробити, один - використання властивості об'єкта файлової системи VBA, а інша - за допомогою методу Open and write у VBA.

У більшості корпоративних компаній після завершення звіту вони прагнуть завантажити звіт до бази даних. Для завантаження в базу даних вони використовують формат «Текстові файли» для оновлення бази даних. Зазвичай ми копіюємо дані з Excel і вставляємо їх у текстовий файл. Причина, по якій ми покладаємось на текстові файли, тому що з ними дуже легко працювати, оскільки їх легкі та прості способи. За допомогою кодування VBA ми можемо автоматизувати завдання копіювання даних із файлу Excel у текстовий файл. У цій статті ми покажемо вам, як скопіювати або записати дані з файлу Excel у текстовий файл за допомогою коду VBA.

Як записати дані у текстові файли за допомогою VBA?

Запис даних з Excel у текст є складним кодуванням і вимагає дуже хороших знань кодування VBA. Дотримуйтесь наведених нижче кроків, щоб написати код VBA для копіювання даних з Excel у текстовий файл.

Перш ніж я покажу вам спосіб написання коду, дозвольте мені пояснити, як відкрити текстовий файл, використовуючи відкрите твердження.

Синтаксис відкритого текстового файлу

Відкрити [Шлях до файлу], Для [Режим], Як [Номер файлу]

Шлях до файлу: шлях до файлу, який ми намагаємось відкрити на комп’ютері.

Режим: Режим - це контроль, який ми можемо мати над відкриттям текстових файлів. Ми можемо мати три типи контролю над текстовим файлом.

  • Режим введення: Це наводить на думку « тільки для читання » контроль відкриття текстового файлу. Якщо ми використовуємо “Режим введення”, ми нічого не можемо зробити з файлом. Ми можемо просто прочитати вміст текстового файлу.
  • Режим виводу: Використовуючи цей параметр, ми можемо писати на ньому вміст. Тут слід пам’ятати, що всі існуючі дані будуть замінені. Отже, нам слід побоюватися можливої ​​втрати старих даних.
  • Режим додавання: цей режим повністю протилежний режиму OutPut. За допомогою цього методу ми можемо фактично записати нові дані в кінці існуючих даних у файлі.

Номер файлу: підраховується номер текстового файлу всіх відкритих текстових файлів. Це дозволить розпізнати номери відкритих файлів у цілих значеннях від 1 до 511. Призначення номера файлу є хитрим і призводить до великої плутанини. Для цього ми можемо використовувати безкоштовну функцію File.

Безкоштовний файл повертає унікальний номер відкритих файлів. Таким чином ми можемо призначити унікальний номер файлу без будь-яких повторюваних значень.

Ви можете завантажити цей шаблон написання текстового файлу VBA тут - Шаблон текстового файлу VBA писати

Приклад №1

Дотримуйтесь наведених нижче кроків, щоб написати код для створення нового текстового файлу.

Припустимо, у вас вже є текстовий файл із назвою „Hello.txt” у вашому комп’ютері, і ми покажемо вам, як записати дані в нього.

Крок 1: Оголосіть змінну

Оголосіть змінну, яка містить шлях до файлу, як рядок.

Код:

 Sub TextFile_Example1 () Затемнити шлях як кінець рядка Sub 

Крок 2: Визначте номер файлу

Щоб визначити, який номер файлу ми маємо на увазі, оголосити ще одну змінну як Integer.

Код:

 Sub TextFile_Example1 () Затемнити шлях як рядок Затемнити номер файлу як ціле число Кінець Sub 

Крок 3: Призначте шлях до файлу

Тепер для змінної Path призначте шлях до файлу з іменем файлу.

Код:

 Sub TextFile_Example1 () Затемнити шлях як рядок Затемнити номер файлу як цілий шлях = "D: \ Файли Excel \ Файл VBA \ Hello.txt" 'Змінити шлях відповідно до вашої вимоги Кінець Суб 

Крок 4: Призначте безкоштовну функцію файлу

Тепер для змінної Номер файлу призначте функцію «Безкоштовний файл» для зберігання унікального номера файлу.

Код:

 Sub TextFile_Example1 () Затемнити шлях як рядок Затемнити номер файлу як цілий шлях = "D: \ Файли Excel \ Файл VBA \ Hello.txt" 'Змінити шлях відповідно до вашої вимоги FileNumber = FreeFile End Sub 

Крок 5: Відкрийте текстовий файл

Тепер нам потрібно відкрити текстовий файл для роботи з ним. Як я вже пояснив, нам потрібно використовувати оператор OPEN, щоб відкрити текстовий файл.

Крок 6: Використовуйте метод друку / запису

Після відкриття файлу нам потрібно щось написати в ньому. Для того, щоб писати у текстовому файлі, нам потрібно використовувати метод «Написати» або «Друкувати».

Код:

 Sub TextFile_Example1 () Вимірювати шлях як рядок Примусований номер файлу як цілий шлях = "D: \ Файли Excel \ VBA Файл \ Hello.txt" 'Змінити шлях згідно з вашими вимогами FileNumber = FreeFile Відкритий шлях для виводу як Номер файлу Вивести # Номер файлу, Вітаємо "Print #FileNumber," to "Print #FileNumber," VBA "End Sub 

First, we need to mention the file number (here we have assigned the file through the “FileNumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

 Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:\Excel Files\VBA File\Hello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub 

Now, run the code this manually or through shortcut excel key F5, it will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.