Chọn ngày trong Excel và VBA (Calendar Form)

Deal Score0
Deal Score0
Bài viết này sẽ đề cập đến cách hoạt động của Date Picker Calendar Form được sử dụng trong VBA Excel (kèm với link tải)  cũng như những điểm khác biệt của nó so với Date Picker Add-in dùng trong môi trường Excel . Hãy tìm hiểu ngay ở bài viết này nhé.

Công cụ đề xuất để hỗ trợ chọn ngày trong Excel

Trước đây, tôi đã có một bài viết giới thiệu Date Picker Add-in để sử dụng trong môi trường Excel. Vì vậy, rất khó để chúng tôi xử lý nó trong môi trường VBA. Việc sử dụng lại nó trong Userforms có một số vấn đề.

Chọn ngày trong Excel và VBA

vậy bây giờ Biểu mẫu lịch bộ chọn ngày có khác với một bổ trợ không? Nếu bạn đang học VBA, bạn sẽ quen thuộc với các khái niệm khác: Class, Userform, Module…

Tải về Calendar Form

Bạn có thể truy cập tại website chính chủ: https://trevoreyre.com/portfolio/excel-datepicker/

Link tải dự phòng: https://bit.ly/calendarfrm

Hướng dẫn cài đặt và sử dụng mẫu lịch.

Chọn ngày trong Excel và VBA

  1. Sau khi tải về, bạn cần giải nén ra thư mục. (Bên trong sẽ có file CalendarForm v1.5.2.xlsm hướng dẫn và ví dụ cho bạn các thông số tương ứng).
  2. Ở file bạn cần sử dụng, bạn nhấn tổ hợp phím ALT + F11 để mở cửa sổ lập trình VBA.
  3. Ở cửa sổ Project Explorer (bạn có thể chọn menu View rồi chọn Project Explorer, phím tắt: CTRL+R)
  4. Bạn click phải Project bạn cần import, sau đó chọn Import File…
  5. Chọn file CalendarForm.frm mà bạn đã giải nén ở bước 1. Vậy là xong.
  6. Sau khi đã hoàn tất bước trên, bạn có thể sử dụng bằng cách khai báo biến, ra gọi nó ra.

Ví dụ về việc sử dụng biểu mẫu lịch

Ứng dụng macro để hiển thị DatePicker trong Excel Cells

Dưới đây là một đoạn mã mẫu mà tác giả đã thực hiện. Chúng ta có thể thấy rằng ô được gán H16 để sử dụng. chỉ cần gọi macro BasicCalendar Lưu ý, khi làm việc với nhiều sheet khác nhau, bạn nên xác định rõ các ô của sheet H16 ở đâu nhé! nhu la: Sheets("Sheet1").Range("H16") = dateVariableKhi ô bạn đang sử dụng nằm trong một trang tính có tên là Sheet1

Sub BasicCalendar()
dateVariable = CalendarForm.GetDate
If dateVariable <> 0 Then Range("H16") = dateVariable
End Sub

Ứng dụng được gán cho hộp văn bản trong Userform VBA

Đây là một macro mà tôi đã viết lại để sử dụng với các hộp văn bản, tương ứng với Check-in, Check-out được chọn, chúng tôi sẽ gọi lại macro sau mà không cần khai báo nó nhiều lần.

Chọn ngày trong Excel và VBA

Private Sub checkin_Enter()
calDatepicker checkin
End Sub

Private Sub checkin_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
calDatepicker checkin
KeyAscii = 0
End Sub

Private Sub calDatepicker(ctlTextbox As Control)
Dim dteNgay As Date

dteNgay = IIF(ctlTextbox.value, ctlTextbox.value,Now())
dateVariable = CalendarForm.GetDate(SelectedDate:=dteNgay)
If dateVariable <> 0 Then ctlTextbox = dateVariable
End Sub

chúc may mắn.

We will be happy to hear your thoughts

Leave a reply

Phần mềm FREE