Bạn xem bài này (#2) http://www.giaiphapexcel.com/forum/...ên-dưới-khi-lập-công-thức&p=614746#post614746Nhờ các cao thủ chỉ giáo làm thế nào có thể đánh số ngày tự động có mẫu st, th, rd trên cùng của ngày đó, mình đang cần lập báo cáo tài chính tự động. Rất mong các cao thủ chỉ giáo mình.
Xin cám ơn.
Thì tôi đã giúp bạn chỉ ra là công thức không làm được. Bạn chờ thành viên khác giúp đỡ bằng code xem sao.Cám ơn bạn, mình đọc nhưng vẫn không làm cách nào được, vì cái này là mũ của ngày tháng. Bạn xem xử lý giúp mình. Mình rất cần.
Bài này dễ ẹc thôi. Vào box lập trình hỏi đi. Lúc nào rảnh mình viết cho.Nhờ các cao thủ xem có code nào giúp mình với.
Mấy chữ th, st, ... kg có trong Alt code, nên bài này fải viết code thôiNhờ các cao thủ chỉ giáo làm thế nào có thể đánh số ngày tự động có mẫu st, th, rd trên cùng của ngày đó, mình đang cần lập báo cáo tài chính tự động. Rất mong các cao thủ chỉ giáo mình.
Xin cám ơn.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s$, i&
If Target.Count > 1 Or Target.Column <> 3 Or (Not IsNumeric(Target)) Then Exit Sub
Application.EnableEvents = False
For i = 1 To 31
If Target = i Then
Select Case i
Case 1, 21, 31
s = "st"
Case 2, 22
s = "nd"
Case 3, 23
s = "rd"
Case Else
s = "th"
End Select
Target = Target.Text & s
Target.Characters(Len(Target.Text) - 1, 2).Font.Superscript = True
Exit For
End If
Next
Application.EnableEvents = True
End Sub
Sao lại dùng vòng lặp chi vậy anh? Bỏ vòng lặp được mà. Dùng Select Case Target được rồi.Nếu dùng vba thì
Mã:Private Sub Worksheet_Change(ByVal Target As Range) Dim s$, i& If Target.Count > 1 Or Target.Column <> 3 Or (Not IsNumeric(Target)) Then Exit Sub Application.EnableEvents = False For i = 1 To 31 If Target = i Then Select Case i Case 1, 21, 31 s = "st" Case 2, 22 s = "nd" Case 3, 23 s = "rd" Case Else s = "th" End Select Target = Target.Text & s Target.Characters(Len(Target.Text) - 1, 2).Font.Superscript = True Exit For End If Next Application.EnableEvents = True End Sub
Sao lại dùng vòng lặp chi vậy anh? Bỏ vòng lặp được mà. Dùng Select Case Target được rồi.
...
Tại em lười kiểm tra target có phải số nguyên trong khoảng từ 1 đến 31 không (thay thế if target>=1 and target<= 31 and target=INT(target)), vòng lặp ngắn nên cũng không ảnh hưởng. Còn xóa superscript cho lần sau thì em chưa biết thế nào? Hay là chơi xấu bằng cách thêm ký tự trống ở cuối để xóa?Sao lại dùng vòng lặp chi vậy anh? Bỏ vòng lặp được mà. Dùng Select Case Target được rồi.
Và nếu không xoá định dạng trước thì nhập lần thứ 2 có thể bị kỳ lắm đó
Chèn thêm dòng xoá trước rồi mới định dạng lạiTại em lười kiểm tra target có phải số nguyên trong khoảng từ 1 đến 31 không (thay thế if target>=1 and target<= 31 and target=INT(target)), vòng lặp ngắn nên cũng không ảnh hưởng. Còn xóa superscript cho lần sau thì em chưa biết thế nào? Hay là chơi xấu bằng cách thêm ký tự trống ở cuối để xóa?
Target.Characters.Font.Superscript = False
Code fải bỏ trong sheet, nhập số ở cột CMình cám ơn các bạn rất nhiều, các bạn có thể viết lại code hướng dẫn sử dụng file này giúp mình với, minh loay hoay mãi mà không được.
1/ ở BÀI #14 của bạn, tôi thấy code đưa vào module màBạn ơi, mình đã đưa code vào rùi mà, nhập cột c cũng ko được, bạn làm giúp mình với.
Bạn xem File.................................Mình làm giống như bạn nhưng vẫn không được, bạn có thể làm ví dụ giúp mình không, mình không giỏi cái này. Rất mong bạn chỉ giáo tận tình, xin cám ơn.