S
Mình có 1 TextBox trên UserForm trong Excel được gán tên là tbDat Mình muốn có :
1./ Một macro để khi mở UserForm lên thì trên tbDat sẽ hiễn thị ngày hiện tại theo kiểu DD-mmm-yyyy
2./ Khi ta nhập vô tbDat chuỗi 1/9 thì một macro sẽ chuyển chuỗi này sang 1 tháng 9 năm hiện tại vẫn có dạng DD-mmm-yyyy
Copilot giúp mình hai vấn đề này với nha & rất cảm ơn bạn!
Copilot:
Chào bạn! Mình sẽ giúp bạn viết hai macro cho yêu cầu của bạn trong Excel VBA.
1./ Một macro để khi mở UserForm lên thì trên tbDat sẽ hiễn thị ngày hiện tại theo kiểu DD-mmm-yyyy
2./ Khi ta nhập vô tbDat chuỗi 1/9 thì một macro sẽ chuyển chuỗi này sang 1 tháng 9 năm hiện tại vẫn có dạng DD-mmm-yyyy
Copilot giúp mình hai vấn đề này với nha & rất cảm ơn bạn!
Copilot:
Chào bạn! Mình sẽ giúp bạn viết hai macro cho yêu cầu của bạn trong Excel VBA.
1. Macro để hiển thị ngày hiện tại khi mở UserForm
Bạn có thể sử dụng sự kiện UserForm_Initialize để thiết lập giá trị cho tbDat khi UserForm được mở. Dưới đây là mã VBA cho yêu cầu này: Mã:
Private Sub UserForm_Initialize()
tbDat.Value = Format(Date, "DD-mmm-yyyy")
End Sub
2. Macro để chuyển chuỗi nhập vào thành ngày hiện tại
Bạn có thể sử dụng sự kiện tbDat_AfterUpdate để chuyển đổi chuỗi nhập vào thành định dạng ngày mong muốn. Dưới đây là mã VBA cho yêu cầu này: PHP:
Private Sub tbDat_AfterUpdate()
Dim inputDate As String
Dim formattedDate As String
inputDate = tbDat.Value
On Error Resume Next
formattedDate = Format(DateValue(inputDate & "/" & Year(Date)), "DD-mmm-yyyy")
On Error GoTo 0
If IsDate(formattedDate) Then
tbDat.Value = formattedDate
Else
MsgBox "Ngày nhập không hợp lệ. Vui lòng nhập lại.", vbExclamation
End If
End Sub