Cú Pháp Và Cách Sử Dụng Hàm Input VBA Excel Qua Các Ví Dụ Cụ Thể
Có thể bạn quan tâm
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
- 1 Cú pháp của hàm Input
- 2 Cách sử dụng hàm INPUT trong VBA Excel
- 2.1 Sử dụng hàm Input để đọc dữ liệu trong file notepad
- 2.2 Ví dụ 2: Sử dụng hàm Input đọc và sao chép đầu vào trang tính excel
Cú pháp của hàm Input
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.
Cách sử dụng hàm INPUT trong VBA Excel
Sử dụng hàm Input để đọc dữ liệu trong file notepad
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 SubBướ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 SubBướ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 SubBướ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 SubBướ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 SubBướ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 SubBướ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 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 + 1LoopClose #1End SubBướ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 SubBướ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.
Ví dụ 2: Sử dụng hàm Input đọc và sao chép đầu vào trang tính excel
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 SubBướ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 SubBướ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 SubBướ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 SubBướ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 SubBướ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.
Input là một trong những hàm trong VBA, những hàm này dùng để đọc nội dung của tập tin và đôi khi chúng được dùng với hàm output để chúng ta có thể viết gì đó lên tập tin. Các hàm Input, Output và Append được sử dụng để đọc nội dung và cập nhật theo dữ liệu.Những điều cần ghi nhớ:- Câu lệnh Input phải được theo sau bởi số tệp.
- Khi chúng ta mở một tệp bằng câu lệnh Open, bắt buộc phải đóng tệp để tránh vòng lặp vô tận.
- Input có thể được sử dụng cho cả tệp cũng như nội dung của tệp.
Từ khóa » Visual Basic Do Until Eof
-
EOF Function (Visual Basic For Applications) | Microsoft Docs
-
EOF (hàm EOF - Microsoft Support
-
VBA EOF Function - Automate Excel
-
EOF Function - VB & VBA In A Nutshell: The Language [Book]
-
EOF Function - VB.NET Language In A Nutshell, Second Edition [Book]
-
Do Until EOF Loop With Records In VB 2010 - Stack Overflow
-
EOF Function - Visual Basic VBA
-
Do Loop - Code VBA
-
Use Do While To Loop Through Until EOF : Recordset Seek
-
VBA Function EOF
-
Do Until EOF Does Not Loop Properly | MrExcel Message Board
-
Read Data From A Text File Using Excel VBA (In Easy Steps)
-
While Not EOF(fn) ... Wend - Visual Basic 4 / 5 / 6 - Bytes