Sử dụng hàm edate trong vba

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

nvthanhdienbien

Thành viên mới
Tham gia
22/4/16
Bài viết
25
Được thích
-5
Sử dụng hàm Edate trong vba
Hiện mình đang cần sử dụng hàm Edate trong vba excel để tính ngày tháng có điều kiện
nhưng sau khi chạy lại không chạy được, các bạn xem giúp mình với
 

File đính kèm

Thứ nhất: Bài đăng đang 'lộn chuồng' & bạn không sửa được chuyện này

Thứ nhì:
Mình muốn viết 1 sub để chạy tại cột C khi cột A là 12 thì ngày ở cột C = ngày tháng ở cột B + 6 tháng
và khi cột A là 60 thì ngày cột C = ngày tháng cột B + 12 tháng
Hiện mình đã thử sub như sau:
Sub gan_tg_st_nh()
Set Data = ThisWorkbook.Sheet1
If Data.Range("Q3") = "12" Then
Data.Range("V3").Formula = "=Edate(T3;6)"
Else
Data.Range("V3") = "=EDATE(T3;6"
End if
End Sub
Nếu thay =Edate(T3;6) bằng đoạn văn bản thì chạy bình thường
Bạn có thấy rằng bạn nói 1 đường, viết 1 nẽo không?

Thứ đến: Nếu bạn mới viết VBA thì khuyên bạn nên tường minh trong khai báo tham biến, cũng như trong các lệnh gán,. . . .

Tạm biệt bạn nha & chúc khỏe!
 
...
nhưng sau khi chạy lại không chạy được, các bạn xem giúp mình với
"sau khi chạy lại không chạy được":
Đã chạy xong rồi thì là trạng thái "sau khi chạy". Vậy thì trạng thái "lại không chạy được" là cái quái gì?

Cái file bạn đưa ra có cái code này:

Sub Macro1()
ActiveCell.Cells(C2) = "=IF(A2=12,EDATE(B2,6),EDATE(B2,12))"
Columns("C:C").Select
Selection.NumberFormat = "m/d/yyyy"
End Sub

Tôi cho nó chạy 100 lần đều chra thấy "lại không chạy được" ở đâu cả.
Chỉ khi nào tôi đặt con trỏ ở dòng 1 thì mới bị VBA dãy nảy.

Riêng cái sub mà bạn diễn tả sau dòng "Hiện mình đã thử sub như sau:" thì nó nát như tương, tôi không màng bỏ công xét gì hơn.
Có lẽ bạn chép nó ở đâu đó về.
Nên viết lại code khác từ đầu. Code này thì thẳng tay quên nó đi, không xứng đáng chỉnh sửa chỗ nào cả.
 
"sau khi chạy lại không chạy được":
Đã chạy xong rồi thì là trạng thái "sau khi chạy". Vậy thì trạng thái "lại không chạy được" là cái quái gì?

Cái file bạn đưa ra có cái code này:

Sub Macro1()
ActiveCell.Cells(C2) = "=IF(A2=12,EDATE(B2,6),EDATE(B2,12))"
Columns("C:C").Select
Selection.NumberFormat = "m/d/yyyy"
End Sub

Tôi cho nó chạy 100 lần đều chra thấy "lại không chạy được" ở đâu cả.
Chỉ khi nào tôi đặt con trỏ ở dòng 1 thì mới bị VBA dãy nảy.

Riêng cái sub mà bạn diễn tả sau dòng "Hiện mình đã thử sub như sau:" thì nó nát như tương, tôi không màng bỏ công xét gì hơn.
Có lẽ bạn chép nó ở đâu đó về.
Nên viết lại code khác từ đầu. Code này thì thẳng tay quên nó đi, không xứng đáng chỉnh sửa chỗ nào cả.
Anh ơi sửa hộ em.Em mới học anh ạ.
 
Anh ơi sửa hộ em.Em mới học anh ạ.
Sửa hộ cách viết tiếng Việt?
Cái này tôi đoán nha, có hiểu thớt thực sự hỏi gì đâu mà đặt lại câu hỏi:

Câu hỏi ở bài #1:
Nhưng bị lỗi "Error 1004 - Application defined or object defined error"

Câu hỏi ở bên trong file tải về:
Ông nội tôi cũng không biết cái "đoạn văn bản" mà thớt nói là cái gì.
Còn cái code thì tôi đã nói nó viết lại cho xong. Chẳng lẽ bây giờ toi chỉ chỗ sai hóa ra tôi tự mâu thuẫn.
Chỉ có thể gợi ý thôi: code này không cùng lò với code thực sự trong Module1. Hai cái hoạt động trên hai hệ thống khác nhau. (chưa kể chỗ code sai).
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom