VBA InputBox - Nhận đầu vào từ người dùng trong Macro - Ví dụ về mã VBA

Hướng dẫn này sẽ trình bày cách lấy đầu vào từ người dùng với Hộp đầu vào VBA.

Các Hộp đầu vào VBA cho phép chúng tôi nhắc người dùng nhập thông tin. Sau đó, thông tin có thể được sử dụng trong Mã VBA của chúng tôi hoặc trong trang tính Excel.

Hộp đầu vào VBA với một biến

Chúng ta có thể khai báo một biến trong mã VBA của chúng ta, sau đó sẽ lưu trữ thông tin được nhập vào Hộp đầu vào. Sau đó, chúng tôi có thể sử dụng biến này trong mã của chúng tôi.

Tùy thuộc vào loại thông tin chúng ta muốn trả về từ hộp nhập liệu, chúng ta có thể khai báo một loại biến cụ thể để trả về văn bản (biến chuỗi hoặc biến thể) hoặc trả về một số (biến số nguyên, dài, kép hoặc đơn).

Biến chuỗi có hộp nhập

Đây là cách bạn có thể tạo một InputBox nơi dữ liệu được trả về thành một biến chuỗi.

123 Dim strInput dưới dạng chuỗistrInput = InputBox ("Đây là InputBox của tôi", "MyInputTitle", "Nhập văn bản đầu vào của bạn TẠI ĐÂY")

Lưu ý đầu tiên chúng ta khai báo một biến. Biến này sẽ được gán giá trị mà người dùng nhập vào. Chúng tôi đã sử dụng loại biến String để hộp Đầu vào chấp nhận các chuỗi văn bản (bao gồm bất kỳ ký tự số alpha nào).

Biến số có hộp nhập

Nếu bạn khai báo một biến số, bạn sẽ chỉ cần nhập một số vào ô nhập liệu.

12 Dim iInput As IntegeriInput = InputBox ("Vui lòng nhập số", "Tạo số hóa đơn", 1)

Đầu tiên chúng ta khai báo biến number là một biến số nguyên. Sau đó, chúng ta cũng có thể đặt giá trị mặc định là 1 vào ô nhập liệu.

Nếu chúng tôi nhập một chuỗi thay vì một số và sau đó nhấp vào OK, chúng tôi sẽ nhận được Lỗi Loại Không khớp vì một biến số không chấp nhận một chuỗi.

Nhận thông tin đầu vào từ người dùng

Đây là một ví dụ khác sử dụng các tính năng phổ biến nhất của InputBox.

Đoạn mã sau thực hiện ba điều:

1. Lời nhắc nhập liệu bằng InputBox và gán nó cho một biến

2. Xác minh đầu vào, nếu không thì thoát khỏi phụ

3. Trả lại đầu vào trong hộp tin nhắn

12345678910111213 Public Sub MyInputBox ()Làm mờ đầu vào của tôi dưới dạng chuỗiMyInput = InputBox ("Đây là InputBox của tôi", "MyInputTitle", "Nhập văn bản đầu vào của bạn TẠI ĐÂY")Nếu MyInput = "Nhập văn bản đầu vào của bạn TẠI ĐÂY" Hoặc MyInput = "" ThìThoát SubKết thúc nếuMsgBox "Văn bản từ MyInputBox là" & MyInputKết thúc Sub

Trả lại dữ liệu đầu vào cho Trang tính Excel

Bạn có thể trả lại đầu vào mà bạn nhập vào hộp nhập vào một ô cụ thể trong trang tính Excel của bạn.

1 Range ("P1") = InputBox ("Vui lòng nhập tên của bạn", "Nhập Tên", "Nhập tên TẠI ĐÂY")

Chúng tôi cũng có thể trả lại dữ liệu đầu vào cho Trang tính Excel bằng cách sử dụng một biến.

12345678910 Sub EnterNumber ()Khi có lỗi Tiếp tục tiếp theoDim dblAmount As DoubledblAmount = InputBox ("Vui lòng nhập số tiền cần thiết", "Nhập số tiền")Nếu dblAmount 0 ThìPhạm vi ("A1") = dblAmountKhácMsgBox "Bạn chưa nhập số!"Kết thúc nếuKết thúc Sub

Trong ví dụ trên, chúng ta bắt buộc phải nhập một số. Nếu chúng ta nhập một số, thì biến dblAmount sẽ đưa số vào trang tính Excel tại ô A1. Tuy nhiên, nếu chúng ta không nhập một số, thì một hộp thông báo sẽ cho chúng ta biết rằng chúng ta đã không nhập một số và sẽ không có gì được đưa vào ô A1.

Sử dụng VBA InputBox trong Access VBA

Hộp nhập VBA hoạt động giống hệt cách trong Access cũng như trong Excel khi trả lại đầu vào của người dùng dưới dạng hộp thông báo.

Tuy nhiên, nếu bạn muốn trả lại đầu vào của người dùng cho cơ sở dữ liệu, bạn sẽ cần sử dụng đối tượng Recordset thay vì đối tượng Range như được sử dụng trong Excel.

1234567891011121314 Sub EnterInvoiceNumber ()Làm mờ dbs dưới dạng cơ sở dữ liệuDim đầu tiên As RecordsetĐặt dbs = CurrentDbĐặt rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)Với đầu tiên.Thêm mới! InvNo = InputBox ("Vui lòng nhập Số hóa đơn", "TỔNG HỢP SỐ HÓA ĐƠN", 1).Cập nhậtKết thúc vớiđầu tiên. ĐóngĐặt đầu tiên = Không có gìĐặt dbs = Không có gìKết thúc Sub

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave