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

Excel VBA FreeFile

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

Chúng tôi 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 ta cần biết loại mô hình chúng ta sẽ áp dụng. Chúng tôi có thể sử dụng ba 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.

Thêm chế độ để 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ở. Đây là nơi hàm “FreeFile” đóng một 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ạn có thể tải xuống Mẫu VBA FreeFile Excel này tại đây - Mẫu VBA FreeFile Excel

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ó.

Đường dẫn = "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 đường dẫn tệp được đề cập ở trên.

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

Ok, 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ề 1 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 hiện 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 Đóng tệp, FreeFile nhận dạng tệp mới mở là tệp mới và trả về số nguyên là 1.


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