Excel VBA Viết tệp văn bản
Trong VBA chúng ta có thể mở hoặc đọc hoặc ghi một tệp văn bản, để ghi một tệp văn bản có nghĩa là dữ liệu chúng ta có trong một trang tính excel và chúng ta muốn nó thành tệp văn bản hoặc tệp notepad, có hai phương pháp để thực hiện, một là bằng cách bằng cách sử dụng thuộc tính đối tượng Hệ thống tệp của VBA và một thuộc tính khác là bằng cách sử dụng phương thức Mở và ghi trong VBA.
Trong hầu hết các công ty doanh nghiệp, khi báo cáo được hoàn thành, họ sẽ tải báo cáo lên cơ sở dữ liệu. Để tải lên cơ sở dữ liệu, họ sử dụng định dạng “Tệp văn bản” để cập nhật cơ sở dữ liệu. Chúng tôi thường sao chép dữ liệu từ excel và dán vào tệp văn bản. Lý do tại sao chúng tôi dựa vào các tệp văn bản bởi vì chúng rất dễ làm việc với cách thức nhẹ và đơn giản hơn. Bằng cách sử dụng mã hóa VBA, chúng ta có thể tự động hóa công việc sao chép dữ liệu từ tệp excel sang tệp văn bản. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sao chép hoặc ghi dữ liệu từ tệp excel sang tệp văn bản bằng VBA Code.

Làm thế nào để ghi dữ liệu vào tệp văn bản bằng VBA?
Viết dữ liệu từ excel sang văn bản là mã hóa phức tạp và đòi hỏi kiến thức rất tốt về mã hóa VBA. Làm theo các bước dưới đây để viết mã VBA để sao chép dữ liệu từ excel sang tệp văn bản.
Trước khi tôi chỉ cho bạn cách viết mã, hãy để tôi giải thích cách mở tệp văn bản bằng cách sử dụng câu lệnh mở.
Cú pháp của tệp văn bản mở
Mở (Đường dẫn tệp), Cho (Chế độ), Như (Số tệp)
Đường dẫn tệp: Đường dẫn của tệp chúng tôi đang cố gắng mở trên máy tính.
Chế độ: Chế độ là sự kiểm soát chúng ta có thể có đối với việc mở các tệp văn bản. Chúng ta có thể có ba loại kiểm soát đối với tệp văn bản.
- Chế độ đầu vào: Chế độ này đề xuất điều khiển " Chỉ đọc " đối với tệp văn bản đang mở. Nếu chúng tôi sử dụng “Chế độ đầu vào”, chúng tôi không thể làm gì với tệp. Chúng ta chỉ có thể đọc nội dung của tệp văn bản.
- Chế độ đầu ra: Sử dụng tùy chọn này, chúng ta có thể viết nội dung trên đó. Điểm chúng ta cần nhớ ở đây là tất cả dữ liệu hiện có sẽ bị ghi đè. Vì vậy, chúng ta cần đề phòng khả năng mất dữ liệu cũ.
- Append Mode: Chế độ này hoàn toàn ngược lại với OutPut Mode. Sử dụng phương pháp này, chúng ta thực sự có thể ghi dữ liệu mới vào cuối dữ liệu hiện có trong tệp.
Số tệp: Điều này sẽ đếm số tệp văn bản của tất cả các tệp văn bản đã mở. Điều này sẽ nhận ra các số tệp đã mở ở các giá trị nguyên từ 1 đến 511. Việc gán số tệp là một việc khó và dẫn đến nhiều nhầm lẫn. Đối với điều này, chúng ta có thể sử dụng chức năng Tệp miễn phí.
Tệp miễn phí trả về số duy nhất cho các tệp đã mở. Bằng cách này, chúng tôi có thể chỉ định số tệp duy nhất mà không có bất kỳ loại giá trị trùng lặp nào.
Ví dụ 1
Làm theo các bước dưới đây để viết mã tạo tệp văn bản mới.
Giả sử bạn đã có một tệp văn bản có tên “Hello.txt” trong bộ nhớ máy tính của mình và chúng tôi sẽ hướng dẫn bạn cách ghi dữ liệu vào đó.
Bước 1: Khai báo biến
Khai báo biến giữ đường dẫn Tệp là Chuỗi.
Mã:
Sub TextFile_Example1 () Dim Path As String End Sub

Bước 2: Xác định số tệp
Để xác định số tệp mà chúng tôi đang đề cập đến, hãy khai báo thêm một biến là Số nguyên.
Mã:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub

Bước 3: Chỉ định đường dẫn tệp
Bây giờ đối với biến Path, hãy gán đường dẫn tệp với tên tệp.
Mã:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Excel Files VBA File Hello.txt" 'Thay đổi đường dẫn theo yêu cầu của bạn End Sub

Bước 4: Gán chức năng tệp miễn phí
Bây giờ đối với biến File Number, hãy gán chức năng “Free File” để lưu trữ các số tệp duy nhất.
Mã:
Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Excel Files VBA File Hello.txt" 'Thay đổi đường dẫn theo yêu cầu của bạn FileNumber = FreeFile End Sub

Bước 5: Mở tệp văn bản
Bây giờ chúng ta cần mở tệp văn bản để làm việc với nó. Như tôi đã giải thích, chúng ta cần sử dụng câu lệnh OPEN để mở tệp văn bản.

Bước 6: Sử dụng phương pháp in / ghi
Khi File được mở, chúng ta cần viết một cái gì đó vào đó. Để ghi vào tệp văn bản, chúng ta cần sử dụng phương pháp “Viết” hoặc “In”.
Mã:
Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:Excel FilesVBA FileHello.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" 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 FilesVBA FileHello.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 the 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 FilesVBA FileHello.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
Vì vậy, hãy chạy mã bằng phím F5 hoặc theo cách thủ công. Sau đó, nó sẽ sao chép dữ liệu bên dưới.
