Cần giúp đỡ về loại bỏ số 0 thập phân bị thừa ở đuôi. (6 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi đã áp dụng code của bạn, nhưng sau khi chạy code xong thì báo lỗi
Run - time error '13':
Type mimatch

cụ thể ở dòng
Mã:
If Evaluate("MOD(" & rng.Address & ", 1)") = 0 Then
Các bạn vui lòng hướng dẫn , xin cảm ơn!
Quý vị thử xài code này xem sao:
PHP:
Sub DinhDang()    
Dim rng As Range   
On Error Resume Next    
For Each rng In ActiveSheet.[E8:AJ500]        
If Evaluate("MOD(" & rng.Address & ", 1)") = 0 Then
   rng.NumberFormat = "#,##0"        
Else            
   rng.NumberFormat = "#,##0.0#"        
End If    
Next    
On Error GoTo 0
End Sub
 
Cái này do bạn dùng bẫy lỗi On Error Resume Next
Tôi muốn biết tại sao bị lỗi, cách bẫy lỗi như trên là bất đắc dĩ thôi vì có thể code bị sai rồi, nhưng nó vẫn tiếp tục chạy!
Tôi thử chỉ chuột vào biến rng lúc bị lỗi thì thấy nó bị lỗi ở ô "Giám đốc duyệt" => Có thể là code này chỉ dùng cho các ô thuần là số, còn ô ký tự thì bị lỗi. Tôi thử khoanh vùng:
PHP:
For Each rng In ActiveSheet.[E8:AJ22]
=> Thì chạy ngon lành. Vậy nên chèn "On Error Resume Next" là ổn thôi, không vấn đề gì.Untitled.jpg
 
Vậy ta chỉ cần xác định vùng cần chạy code là [E8:AJ22], để khi chạy code sẽ nhanh hơn và kg bị lỗi
Do bảng tính có thể bị thêm bớt dòng, nên các bạn chỉ viết giúp code để xác định vùng trên, xin cảm ơn.
Vậy Quý vị thử xài Code này xem sao:
PHP:
Sub DinhDang()    
Dim rng As Range    
For Each rng In ActiveSheet.Range([E8], [AJ65000].End(xlUp))        
   If Evaluate("MOD(" & rng.Address & ", 1)") = 0 Then            
      rng.NumberFormat = "#,##0"        
   Else            
      rng.NumberFormat = "#,##0.0#"        
   End If    
Next    
End Sub
 
Web KT

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

Back
Top Bottom