Trong bài viết này, chúng ta sẽ tìm hiểu về hàm Input trong VBA Excel. Input là một hàm được sử dụng để đọc các tệp đầu vào. Kết quả của hàm này là một chuỗi trả về nội dung của tệp.
Nội dung chính
Cú pháp hàm Input như sau:
Input ( number, [#]filenumber )
Hàm đầu vào trong VBA là một câu lệnh có một đối số bắt buộc là ile number. Có thể có nhiều tệp được mở cùng lúc trong VBA, vì vậy bạn cần cung cấp số thứ tự của file. Ngay cả khi chỉ có một file duy nhất, chúng ta cần đánh số nó là # 1.
Câu lệnh input được sử dụng trên tệp và cả nội dung của tệp, chúng ta hãy xem cách sử dụng hàm này qua một số ví dụ cụ thể.
Xem thêm khóa học tin học văn phòng online Tuyệt đỉnh VBA - Viết code trong tầm tay để tận dụng lợi thế của lập trình VBA để tự động hóa thao tác và nghiệp vụ trên Excel, tiết kiệm hàng giờ mệt mỏi vì làm báo cáo, quản lý dữ liệu.
Giả sử như chúng ta có một tệp văn bản trên màn hình của mình với một số dữ liệu trong đó. Trong ví dụ này, chúng ta sẽ sử dụng hàm Input để đọc dữ liệu trong tài liệu notepad. Vui lòng thực hiện theo các bước bên dưới
Bước 1 : Chèn một module mới bên trong Visual Basic Editor. Bấm vào tab Insert > chọn Module.
Bước 2 : Sau khi module mới được chèn vào, chúng ta có thể bắt đầu viết dòng code đầu tiên cho ví dụ này.
Sub Example()End Sub
Bước 3 : Để đọc đường dẫn của tệp chúng ta cần khai báo một biến cho nó, vì đường dẫn có chứa các ký tự nên chúng ta khai báo đường dẫn dưới dạng chuỗi.
Sub Example()Dim Path As StringEnd Sub
Bước 4 : Cung cấp cho biến đường dẫn của một tệp văn bản, để thực hiện việc đó nhấp chuột phải vào tệp trên màn hình và nhấp vào properties và sau đó vào tab security, chúng ta có thể xem đường dẫn tệp là đối tượng.
Bước 5 : Gán đường dẫn đến biến cho đường dẫn trong đoạn code của chúng ta
Sub Example()Dim Path As StringPath = "C:\Users\cba_16\Desktop\text.txt"End Sub
Bước 6 : Chúng ta hãy mở đường dẫn tệp của mình bằng câu lệnh Open và xác định cách chúng ta muốn mở tệp, vì cần đọc dữ liệu từ tệp, nên chúng ta sẽ sử dụng INPUT ở đây
Sub Example()Dim Path As StringPath = "C:\Users\cba_16\Desktop\text.txt"Open Path For InputEnd Sub
Bước 7 : Vì chúng ta phải mở một tệp duy nhất hoặc nhiều tệp, nên chúng ta cần cung cấp cho câu lệnh này một con số. Tôi sẽ đặt cho hàm Input một số 1 với ký tự hashtag hoặc #.
Sub Example()Dim Path As StringPath = "C:\Users\cba_16\Desktop\text.txt"Open Path For Input As #1End Sub
Bước 8 : Sau khi mở tệp ra, chúng ta phải đóng lại. Vì vậy trước khi bắt đầu đọc dữ liệu từ tệp, chúng ta hãy đóng tệp trước bằng câu lệnh close.
Bước 9 : Chúng ta muốn đọc nội dung tệp và trước khi bắt đầu vòng lặp của mình, chúng ta cần có một bộ đếm để lặp trong suốt tệp nên trước tiên hãy khai báo một biến là Số nguyên.
Sub Example()Dim Path As StringDim Count As IntegerPath = "C:\Users\cba_16\Desktop\text.txt"Open Path For Input As #1Close #1End Sub
Bước 10 : Chúng ta cũng muốn đọc các dòng trong tệp văn bản của mình, vì vậy chúng ta cần khai báo một biến khác sẽ giúp chúng ta đọc nội dung của tệp.
Bước 11: Bây giờ chúng ta có thể bắt đầu viết vòng lập để đọc nội dung của tệp.
Ở đây EOF là viết tắt của End of File và 1 là số tệp mà chúng ta muốn đọc, trong ví dụ này, chúng ta muốn đọc tệp đầu tiên nằm trong vòng lặp.
Bước 12: Bây giờ chúng ta hãy lặp lại với phần cuối của tệp.
Sub Example()
Dim Path As String
Dim Count As Integer
Dim CLine As String
Path = "C:\Users\cba_16\Desktop\text.txt"
Open Path For Input As #1
Do Until EOF(1)
Count = Count + 1
Loop
Close #1
End Sub
Bước 13: Bây giờ để đọc các dòng trong tệp chúng ta bằng input code sau:
Thao tác này sẽ lấy đầu vào từ dòng 1 và đặt nó vào dòng hiện tại.
Bước 14: Hiển thị nội dung của tệp thông qua hàm Message Box.
Đoạn code hoàn chỉnh của ví dụ này như sau:
Sub Example()Dim Path As StringDim Count As IntegerDim CLine As StringPath = "C:\Users\cba_16\Desktop\text.txt"Open Path For Input As #1Do Until EOF(1)Count = Count + 1Line Input #1, CLineMsgBox CLineLoopClose #1End Sub
Bước 15: Chạy code bằng cách nhấn phím F5 hoặc bằng cách nhấp vào nút Play.
Trong ví dụ trên, chúng ta đã biết cách đọc nội dung của dòng từ một hàm Input. Trong ví dụ tiếp theo, chúng ta sẽ tìm hiểu cách đọc đọc nội dung của tệp văn bản và sao chép vào trang tính excel. Các bước cụ thể như sau:
Bước 1: Chúng ta sẽ làm việc trong cùng một module với ví dụ bên trên, khai báo một sub-function khác.
Bước 2: Khai báo các biến cho một đầu vào để đọc từ tệp.
Sub Example2()Dim Path1 As String, CurLine As String, Count1 As IntegerEnd Sub
Bước 3: Chúng ta hãy gán đường dẫn của tệp văn bản thứ hai cho biến.
Sub Example2()Dim Path1 As String, CurLine As String, Count1 As IntegerPath1 = "C:\Users\cba_16\Desktop\text.txt"End Sub
Bước 4: Chúng ta sẽ sử dụng câu lệnh Open để mở tệp và đọc đầu vào vì đây là tệp duy nhất chúng ta đang mở nên số lượng tệp vẫn là 1.
Bước 5: Bắt đầu với vòng lặp đọc nội dung của tệp.
Sub Example2()Dim Path1 As String, CurLine As String, Count1 As IntegerPath1 = "C:\Users\cba_16\Desktop\text.txt"Open Path1 For Input As #1Do Until EOF(1)End Sub
Bước 6: Chúng ta hãy lặp lại các dòng và đọc nội dung tệp bằng các câu lệnh input.
Bước 7: Lưu nội dung vào trong tệp excel.
Sub Example2()Dim Path1 As String, CurLine As String, Count1 As IntegerPath1 = "C:\Users\cba_16\Desktop\text.txt"Open Path1 For Input As #1Do Until EOF(1)Count1 = Count1 + 1Line Input #1, CurLineThisWorkbook.Sheets("Sheet1").Cells(Count1, 1).Value = CurLineEnd Sub
Bước 8: Kết thúc vòng lặp và câu lệnh CLOSE.
Sub Example2()Dim Path1 As String, CurLine As String, Count1 As IntegerPath1 = "C:\Users\cba_16\Desktop\text.txt"Open Path1 For Input As #1Do Until EOF(1)Count1 = Count1 + 1Line Input #1, CurLineThisWorkbook.Sheets("Sheet1").Cells(Count1, 1).Value = CurLineLoopClose #1End Sub
Bước 9: Khi thực hiện đoạn code này bằng cách nhấn phím F5, chúng ta có thể xem kết quả trong sheet1.
Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!