VBA Viết tệp văn bản | Ghi dữ liệu Excel vào tệp văn bản bằng mã VBA

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 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 vì chúng rất dễ làm việc với cách thức nhẹ và đơn giản hơn của chúng. 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], Đối với [Chế độ], Dưới dạng [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 tôi 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 trái ngược 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.

Bạn có thể tải xuống mẫu VBA Write Text File Template này tại đây - VBA Write Text File Template

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, chúng tôi đang đề cập đến khai báo một biến nữa 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ữ 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 Files \ VBA File \ Hello.txt" 'Thay đổi đường dẫn theo yêu cầu của bạn FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, " Chào mừng "Print #FileNumber" đến "Print #FileNumber," VBA "End Sub 

Đầu tiên, chúng ta cần đề cập đến số tệp (ở đây chúng ta đã gán tệp thông qua biến “FileNumber”), sau đó chúng ta cần thêm nội dung chúng ta muốn thêm vào tệp văn bản.

Bước 7: Lưu và đóng tệp văn bản

Sau khi nội dung được viết trong tệp văn bản, chúng ta cần lưu và đóng tệp văn bản.

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 Open Path For Output As FileNumber Print #FileNumber, " Chào mừng "Print #FileNumber" đến "Print #FileNumber," VBA "Đóng FileNumber End Sub 

Bây giờ, chạy mã này theo cách thủ công hoặc thông qua phím tắt F5 của excel, nó sẽ ghi nội dung được đề cập vào tệp văn bản được đề cập.

Ví dụ số 2

Bây giờ chúng ta sẽ xem cách ghi dữ liệu của sheet excel ra file văn bản.

Đối với ví dụ này, tôi đã tạo dữ liệu đơn giản trong excel như bên dưới.

Bước 1: Với sự tiếp tục của ví dụ cũ, xác định thêm hai biến là Số nguyên để tìm hàng cuối cùng và cột cuối cùng.

Mã:

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

Bước 2: Tìm hàng và cột được sử dụng cuối cùng trong trang tính.

Bước 3: Bây giờ chỉ định đường dẫn tệp và số tệp.

Bước 4: Bây giờ sử dụng câu lệnh OPEN để mở tệp văn bản.

Bước 5: Chúng ta cần lặp qua các hàng và cột, nên khai báo thêm 2 biến là Số nguyên.

Bước 6: Bây giờ mở Loop để lặp qua hàng (Đối với vòng lặp tiếp theo trong VBA)

Bước 7: Bây giờ để lặp qua các cột, hãy mở thêm một vòng lặp nữa bên trong vòng lặp hiện có.

Bước 8: Chúng ta cần ghi cùng một dòng dữ liệu cho đến cột cuối cùng. Vì vậy, đối với điều này, hãy áp dụng câu lệnh IF trong VBA.

Bước 9: Bây giờ lưu và đóng tệp văn bản.

Đoạn mã này sẽ ghi chi tiết vào một tệp văn bản, nhưng để mở tệp văn bản sau khi được viết, chúng ta cần sử dụng đoạn mã dưới đây.

Mã:

 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 Đóng FileNumber Shell "notepad .exe "& Đường dẫn, vbNormalFocus End Sub 

Vì vậy, chạy mã bằng phím F5 hoặc thủ công sau đó, nó sẽ sao chép dữ liệu như bên dưới.


$config[zx-auto] not found$config[zx-overlay] not found