VBA FreeFile - Làm thế nào để sử dụng hàm FreeFile trong Excel VBA?

Mục lục

Excel VBA FreeFile

FreeFile là một hàm trong VBA chỉ có sẵn dưới dạng hàm VBA, không phải là hàm trang tính. Hàm VBA FreeFile trả về số nguyên duy nhất cho tệp, số này được mở và giữ nguyên số tệp có sẵn tiếp theo.

Chúng ta thường mở các tệp từ máy tính của mình để viết một cái gì đó hoặc để chỉ đọc, trong khi tham chiếu đến các tệp đó, chúng ta phải tham chiếu đến một số nguyên duy nhất. Hàm VBA FreeFile cho phép chúng ta xác định số nguyên duy nhất đó để gán cho việc mở tệp để đọc, ghi và mở tệp bằng VBA.

Bây giờ hãy xem cú pháp của câu lệnh OPEN.

MỞ (Địa chỉ đường dẫn tệp) Đối với (Chế độ mở) Dưới dạng (Số tệp)

Địa chỉ đường dẫn tệp: Chúng tôi cần đề cập đến địa chỉ tệp trên máy tính mà chúng tôi đang cố gắng mở.

Chế độ mở: Trong khi mở tệp, chúng tôi cần biết loại mô hình chúng tôi sẽ áp dụng. Chúng tôi có thể sử dụng ba cách ở đây, “Chế độ đầu vào”, “Chế độ đầu ra” và “Chế độ nối”.

Chế độ đầu vào để chỉ đọc tệp.

Chế độ đầu ra để xóa dữ liệu hiện có và chèn dữ liệu mới.

Chế độ nối thêm để thêm dữ liệu mới trong khi vẫn giữ lại dữ liệu hiện có.

Số tệp: Với đối số này, chúng ta có thể tham chiếu đến tệp chúng ta đang mở - tệp này nơi hàm “FreeFile” đóng vai trò quan trọng và trả về số nguyên duy nhất.

Làm thế nào để sử dụng hàm FreeFile trong Excel VBA?

Bây giờ, hãy xem đoạn mã dưới đây.

Mã:

Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Articles 2019 File 1.txt" FileNumber = FreeFile Open Path For Output As FileNumber Path = "D: Articles 2019 File 2.txt "FileNumber = FreeFile Mở đường dẫn cho đầu ra là FileNumber End Sub

Bây giờ để tôi giải mã đoạn mã trên cho bạn hiểu.

Đầu tiên, tôi đã khai báo hai biến.

Làm mờ đường dẫn dưới dạng chuỗi, làm mờ số tệp dưới dạng số nguyên

Sau đó, tôi đã chỉ định đường dẫn tệp với tên của nó.

Path = "D: Articles 2019 File 1.txt"

Sau đó, đối với một biến nữa, tôi đã gán hàm FREEFILE.

FileNumber = FreeFile

Sau đó, tôi đã sử dụng câu lệnh Open để mở tệp văn bản trong tệp được đề cập ở trên.

Mở đường dẫn đầu ra dưới dạng số tệp

Được rồi, bây giờ tôi sẽ chạy mã từng dòng bằng cách nhấn phím F8 và xem giá trị của biến “FileNumber”.

Nó đang hiển thị số tệp là 1. Vì vậy, chức năng tệp miễn phí sẽ tự động dự trữ số này cho tệp đang mở. Trong khi chạy, không có tệp nào khác được mở.

Bây giờ tôi sẽ tiếp tục thực hiện dòng tiếp theo của mã VBA và xem số tệp là bao nhiêu nếu tôi chuyển sang dòng tiếp theo.

Bây giờ nó cho biết 2. Vì vậy, hàm FreeFile dự trữ số nguyên duy nhất 2 vào tệp mở thứ hai.

Hàm FreeFile Luôn trả về 1 nếu chúng ta Đóng tệp Excel.

Một điều chúng ta cần xem xét là hàm “FreeFile” của VBA luôn trả về một hàm nếu chúng ta đóng tệp đã mở trước khi mở tệp excel thứ hai.

Ví dụ, hãy xem đoạn mã dưới đây.

Mã:

Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: Articles 2019 File 1.txt" FileNumber = FreeFile Mở Đường dẫn Cho Đầu ra Dưới dạng FileNumber Đóng FileNumber Path = "D: Articles 2019 File 2 .txt "FileNumber = FreeFile Mở đường dẫn cho đầu ra dưới dạng tệp số đóng tệp số cuối tệp phụ

Bây giờ tôi sẽ một lần nữa thực thi từng dòng mã bằng cách nhấn phím F8.

Nó nói 1 như thường lệ.

Bây giờ tôi sẽ tiến tới cấp độ tiếp theo.

Ngay cả trong lần thử thứ hai nó cũng cho biết 1.

Lý do cho điều này là vì chúng tôi đã sử dụng câu lệnh Close tệp, FreeFile nhận ra tệp mới mở là tệp mới và trả về số nguyên là 1.

thú vị bài viết...