Copilot & VBA

  • Thread starter SA_DQ
  • Ngày gửi
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
579
103
43
67
HCM city
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. 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
 
Khóa học Quản trị dòng tiền

Xem nhiều

Webketoan Zalo OA