Cú pháp và cách sử dụng hàm Input VBA Excel qua các ví dụ cụ thể

Nội dung được viết bởi Bến Hà Trương

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.

Cú pháp và cách sử dụng hàm Input VBA Excel qua các ví dụ cụ thể

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.

Chèn một module mới bên trong Visual Basic Editor

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.

hàm Input để đọc dữ liệu trong file notepad

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 String
End 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.

hàm Input để đọc dữ liệu trong file notepad

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 String
Path = "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 String
Path = "C:\Users\cba_16\Desktop\text.txt"
Open Path For Input
End 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 String
Path = "C:\Users\cba_16\Desktop\text.txt"
Open Path For Input As #1
End 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.

hàm Input để đọc dữ liệu trong file notepad

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 String
Dim Count As Integer
Path = "C:\Users\cba_16\Desktop\text.txt"
Open Path For Input As #1
Close #1
End 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.

hàm Input để đọc dữ liệu trong file notepad

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.

hàm Input để đọc dữ liệu trong file notepad

Ở đâ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:

hàm Input để đọc dữ liệu trong file notepad

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 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
Line Input #1, CLine
MsgBox CLine
Loop
Close #1
End 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.

Cú pháp và cách sử dụng hàm Input VBA Excel qua các ví dụ cụ thể

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.

hàm Input đọc và sao chép đầu vào trang tính excel

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 Integer
End 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 Integer
Path1 = "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.

hàm Input đọc và sao chép đầu vào trang tính excel

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 Integer
Path1 = "C:\Users\cba_16\Desktop\text.txt"
Open Path1 For Input As #1
Do 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.

hàm Input đọc và sao chép đầu vào trang tính excel

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 Integer
Path1 = "C:\Users\cba_16\Desktop\text.txt"
Open Path1 For Input As #1
Do Until EOF(1)
Count1 = Count1 + 1
Line Input #1, CurLine
ThisWorkbook.Sheets("Sheet1").Cells(Count1, 1).Value = CurLine
End 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 Integer
Path1 = "C:\Users\cba_16\Desktop\text.txt"
Open Path1 For Input As #1
Do Until EOF(1)
Count1 = Count1 + 1
Line Input #1, CurLine
ThisWorkbook.Sheets("Sheet1").Cells(Count1, 1).Value = CurLine
Loop
Close #1
End 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.

hàm Input đọc và sao chép đầu vào trang tính excel

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.
Trên đây là hướng dẫn sử dụng hàm Input trong VBA qua các ví dụ thực tế. Hy vọng bạn thấy hữu ích. Đừng quên tham gia Gitiho ngay hôm nay nhé, chúng tôi còn nhiều mẹo và thủ thuật tin học văn phòng thú vị khác chờ bạn khám phá.

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông