Thôi thì cứ coi như đặt kết quả vào ô dạng Text đi (nếu muốn lưu dạng Number thì bạn tùy biến theo cách ở bài trên của tôi nhé):Hi bạn!
Với đoạn code trên thì ba cell mình chọn, đều cho kết quả trước ba cells (D13, H13 & H14) đều có chữ là "Ngày xử lý".
Còn mình muốn ở mỗi cell có dòng text khác nhau mà?
ở cell D13 mình chọn ngày 05/10/2013 và cho kết quả là: Ngày xử lý: 05/10/2013
ở cell H13 mình chọn ngày 01/10/2013 và cho kết quả là: Ngày nhận: 01/10/2013
ở cell H14 mình chọn ngày 04/10/2013 và cho kết quả là: Ngày trả: 04/10/2013.
Cảm ơn bạn nhiều!
Vũ Hưng.
Mình làm tương tự sao vẫn bị báo lỗi:
Run-time error 424
Object required
Dù mình đã vào VBA/Tool/references và chon Microsoft Calendar Control 2007
Hiện mình dùng MS Excel 2007
Bạn nào biết chỉ giúp nhé.
E thử file chạy trên office 2010 thì báo lỗi sau, GPE xem dùm e bị sao.Nếu bạn muốn lưu kết quả dưới dạng Text thì thay Sub Calendar1_Click() bởi sub này:
[GPECODE=vb]Private Sub Calendar1_Click()
ActiveCell.Value = "Ngày x" & ChrW(7917) & " lý: " & Format(Calendar1, "dd/MM/yyyy")
Calendar1.Visible = False
End Sub[/GPECODE]
Còn nếu bạn muốn lưu kết quả dưới dạng Number thì thay sub trên bởi sub này:
[GPECODE=vb]Private Sub Calendar1_Click()
Calendar1.Visible = False
With ActiveCell
.Value = Calendar1
.NumberFormat = """Ngày x" & ChrW(7917) & " lý: "" dd/mm/yyyy"
End With
End Sub[/GPECODE]
E thử file chạy trên office 2010 thì báo lỗi sau, GPE xem dùm e bị sao.
View attachment 111004
e xài file gốc tác giả thứ thầy ah, để e tìm rối kèm.Vậy file của bạn đâu?
Đoán:
- Có thể bạn chỉ copy code mà không copy cái Calendar đi theo
- Nếu bạn chạy file gốc của tác giả mà vẫn báo lỗi, có nghĩa là máy bạn chưa cài Calendar Control (file MSCAL.OCX, đã nói rất nhiều trên diễn đàn rồi)
Lại báo lỗi giống bạn này....file gốc chủ thớt mà cũng ko thử được, GPE hướng dẫn làm với.ứng dụng hay.Mình làm tương tự sao vẫn bị báo lỗi:
Run-time error 424
Object required
Dù mình đã vào VBA/Tool/references và chon Microsoft Calendar Control 2007
Hiện mình dùng MS Excel 2007
Bạn nào biết chỉ giúp nhé.
Em dùng file ở bài số 2 mà nó hiện vậy là sao ạ?1. Chèn một đối tượng Calendar lên sheet, đối tượng này có tên mặc định là Calendar1
2. Click chuột phải vào nhãn sheet (chỗ có chữ Sheet1), chọn View code và dán các đoạn code sau vào:
- Code cho sheet để hiện/ẩn Calendar:
- Code cho Calendar1 để gán giá trị lên ô hiện hành:PHP:Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 3 Or Target.Row < 5 Or Target.Count > 1 Then Calendar1.Visible = False Else With Calendar1 .Left = Target.Left .Top = Target.Top .Visible = True End With End If End Sub
Trong file đính kèm, bạn chọn 1 ô bất kỳ trong vùng C5:C..., Calendar sẽ xuất hiện để chọn ngày (nhớ Enable Macro đấy nhé).PHP:Private Sub Calendar1_Click() ActiveCell = Calendar1 ActiveCell.NumberFormat = "dd/MM/yyyy" Calendar1.Visible = False End Sub
Có lẽ máy bạn đang dùng Excel 2010. Vậy thì bạn tham khảo các topic sau:Em dùng file ở bài số 2 mà nó hiện vậy là sao ạ?
http://screencast.com/t/8MZ92TihQc
tại sao mình không bật chế độ cho chạy macro ta?Hi All! Khi mình viết Macro, khi sang máy khác nếu không cxo1 macro nó sẽ không chạy, có cách nào viết công thức luôn thì hay nhất
Bác Phúc ơi, bây giờ nếu em muốn áp dụng cho nhiều cột (các cột này không liên tiếp) thì sửa code của bác như thế nào ạ? Em cảm ơn bác1. Chèn một đối tượng Calendar lên sheet, đối tượng này có tên mặc định là Calendar1
2. Click chuột phải vào nhãn sheet (chỗ có chữ Sheet1), chọn View code và dán các đoạn code sau vào:
- Code cho sheet để hiện/ẩn Calendar:
- Code cho Calendar1 để gán giá trị lên ô hiện hành:PHP:Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 3 Or Target.Row < 5 Or Target.Count > 1 Then Calendar1.Visible = False Else With Calendar1 .Left = Target.Left .Top = Target.Top .Visible = True End With End If End Sub
Trong file đính kèm, bạn chọn 1 ô bất kỳ trong vùng C5:C..., Calendar sẽ xuất hiện để chọn ngày (nhớ Enable Macro đấy nhé).PHP:Private Sub Calendar1_Click() ActiveCell = Calendar1 ActiveCell.NumberFormat = "dd/MM/yyyy" Calendar1.Visible = False End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Tôi để ý thấy rằng: Cứ cài Office 2010 vào là tự nhiên có cái Calendar, còn DTPicker phải cài riêng mới dùng được
-----------------
Nói chung thì cái nào không có ta phải tự cài... Tìm trên GPE, cũng khá nhiều bài viết về chủ đề này
Đâu phải copy code là chaỵ được đâu. Phải vẽ cái Calendar nó ra bảng tính nữaPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 3 Or Target.Row < 5 Or Target.Count > 1 Then
Calendar1.Visible = False
Else
With Calendar1
.Left = Target.Left
.Top = Target.Top
.Visible = True
End With
End If
End Sub
Private Sub Calendar1_Click()
ActiveCell = Calendar1
ActiveCell.NumberFormat = "dd/MM/yyyy"
Calendar1.Visible = False
End Sub
Anh oi cho e hỏi? e coppy doan code vao mà sao bo lỗi 424 k hà. anh có thể chỉ e cụ thể hơn không? cảm ơn anh nhiều
Bạn vẽ Calendar lên sheet rồi click phải vào tên sheet muốn dùng Calendar, chọn View code rồi cho đống trên vào thử.Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 3 Or Target.Row < 5 Or Target.Count > 1 Then
Calendar1.Visible = False
Else
With Calendar1
.Left = Target.Left
.Top = Target.Top
.Visible = True
End With
End If
End Sub
Private Sub Calendar1_Click()
ActiveCell = Calendar1
ActiveCell.NumberFormat = "dd/MM/yyyy"
Calendar1.Visible = False
End Sub
Anh oi cho e hỏi? e coppy doan code vao mà sao bo lỗi 424 k hà. anh có thể chỉ e cụ thể hơn không? cảm ơn anh nhiều
Vậy còn cách khác de thực hiện không thầy?Đâu phải copy code là chaỵ được đâu. Phải vẽ cái Calendar nó ra bảng tính nữa
Thêm nữa: bây giờ MS không còn hỗ trợ Calendar nữa, muốn dùng cũng không được
Còn, đó là DTPicker nhưng cũng chỉ dùng được nếu bạn cài Office 32 bit (office 64 bit không dùng được)Vậy còn cách khác de thực hiện không thầy?