Auto correct dữ liệu nhập trong Excel? (1 người xem)

Liên hệ QC

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

hoangnguyen282

Thành viên mới
Tham gia
10/11/12
Bài viết
6
Được thích
0
Mọi người cho mình hỏi vấn đề này:
Mình muốn tạo 1 file excel để nhập dữ liệu điểm thi cho học sinh mà khi nhập 65, 75... thì nó tự động sửa thành 6.5, 7.5 (còn nhập 6,7... thì nó vẫn để y vậy) thì làm như thế nào. Có thể không dùng VBA được không?
Mọi người cho giải pháp giúp mình (có dùng và ko dùng VBA đều được). THANK!
 
Mọi người cho mình hỏi vấn đề này: » nghe giống ra lệnh quá...
xin nghe!!
--=0
yêu cầu của bạn chưa rõ lắm, tớ hỏi nếu nhập 6.6 thì sao? 6.9? 7.1? 4.5? 4.3? 5.2?...

khi đó mới làm được đúng ý chính xác.

Việc như bạn yêu cầu đơn giản thôi, không cần VBA cũng được. Chỉ cần vài công thức!
 
Mọi người cho mình hỏi vấn đề này: » nghe giống ra lệnh quá...
xin nghe!!
--=0
Sr nếu mình dùng từ sai
Có lẽ mình chưa trình bày rõ ràng lắm, mấy con số mình đưa ở trên chỉ là vài ví dụ thôi, chứ lúc đó mình ko nói hết được
Nếu đầy đủ thì là:
95 thành 9.5
90 thành 9.0
85 thành 8.5
80 thành 8.0
75 thành 7.5
70 thành 7.0
65 thành 6.5
60 thành 6.0
55 thành 5.5
50 thành 5.0
45 thành 4.5
40 thành 4.0
35 thành 3.5
30 thành 3.0
25 thành 2.5
20 thành 2.0
15 thành 1.5
10 thành 1.0

phù, mỏi tay quá... còn trong điểm học sinh ko có 7.1, 5.2 bạn ah (cái này ko quan trọng, chỉ cần số đó tự động chia cho 10 nếu mình nhập vào số lớn hơn 10 thôi)
Đại để code of nó là như thế này (giả C++ chứ VBA thì mình ko bit): if (C3>10) C3/=10;
Nếu bạn biết thì chỉ cho mình với, cảm ơn bạn nhìu nhé!
 
Lần chỉnh sửa cuối:
Thì chi cần thế này. Dùng sự kiện Change

If Target > 9 Then Target = Left(Target,1) & "." & Right(Target,1)
 
Thì chi cần thế này. Dùng sự kiện Change

If Target > 9 Then Target = Left(Target,1) & "." & Right(Target,1)
Cảm ơn bạn nhìu!
Bạn có thể nói rõ hơn giúp mình được không? Sự kiện change trong VBA khai báo như thế nào? Tại mình không bít chút gì về VBA nên không làm được :(
Ah, mà công thức bạn đưa ra thì Target có bị biến thành kiểu Text ko, có thể sửa lại thành Target = Target/10 dc không? Ngoài VBA còn cách nào khác không (vì nó có thể bị disable)
 
Cảm ơn bạn nhìu!
Bạn có thể nói rõ hơn giúp mình được không? Sự kiện change trong VBA khai báo như thế nào? Tại mình không bít chút gì về VBA nên không làm được :(
Ah, mà công thức bạn đưa ra thì Target có bị biến thành kiểu Text ko, có thể sửa lại thành Target = Target/10 dc không? Ngoài VBA còn cách nào khác không (vì nó có thể bị disable)
Tổng quát chắc na ná thế này, bạn tuỳ biến nha
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target > 9 Then
   Target.NumberFormat = "@" ( Nếu không muốn dữ liệu là text thì bỏ dòng này)
   Target = Left(Target, 1) & "." & Right(Target, 1)
End If
End Sub

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target > 9 Then
   Target = Target / 10
End If
End Sub
 
Lần chỉnh sửa cuối:
Cảm ơn bạn
Mình đã thêm đoạn code of bạn vào và thấy chạy ngon rùi
ah, mà mình cũng thử sửa đoạn
"Target.NumberFormat = "@"
Target = Left(Target, 1) & "." & Right(Target, 1)"
thành
“Target = Target/10” và thấy nó cũng ok
Nhưng còn 1 vấn đề nữa là mình chỉ muốn đoạn code này thực hiện trên 1 số cell nhất định thôi, chứ các cell khác thì nó không thực hiện thì làm thế nào (vì để nó thực hiện trên toàn bộ sheet thì sinh ra lỗi liền. Bạn giúp mình vấn đề này nhé,
 
Cảm ơn bạn
Mình đã thêm đoạn code of bạn vào và thấy chạy ngon rùi
ah, mà mình cũng thử sửa đoạn
"Target.NumberFormat = "@"
Target = Left(Target, 1) & "." & Right(Target, 1)"
thành
“Target = Target/10” và thấy nó cũng ok
Nhưng còn 1 vấn đề nữa là mình chỉ muốn đoạn code này thực hiện trên 1 số cell nhất định thôi, chứ các cell khác thì nó không thực hiện thì làm thế nào (vì để nó thực hiện trên toàn bộ sheet thì sinh ra lỗi liền. Bạn giúp mình vấn đề này nhé,
Code na ná thế này nè, chỉ là tổng quát thôi. Thay vùng màu đỏ cho phù hợp
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [COLOR=#ff0000][A1:E10][/COLOR]) Is Nothing Then
   If Target > 9 Then Target = Target / 10
End If
End Sub
 
Cảm ơn bạn rất nhiều, mình đã sửa code giống như trên thì thấy chạy ngon rùi
Nhưng còn 1 lỗi nhỏ nữa là khi mình copy 1 vùng dữ liệu (2 ô trở lên) từ cell khác sang cell đó thì sinh ra lỗi, không bít nguyên nhân tại sao nữa (cái này là test cho vui thôi, chứ lỗi này ko quan trọng lắm, tại bệnh nghề nghiệp ấy mà :) )
 
Mình cũng biết trước điều này, phải thêm 1 dòng lệnh If target.count = 1 then >>> sẽ hết lỗi
 
Web KT

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

Back
Top Bottom