Lỗi IF trong VBA khi tính điểm (1 người xem)

Liên hệ QC

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

daydien789

Thành viên mới
Tham gia
7/1/15
Bài viết
21
Được thích
0
Sub kiem_tra()
Dim CN As Long
Dim HL, GC As String

CN = Range("G3").Value

If CN >= 8 Then 'Neu Diem CN >= 8 thi se la gioi
HL = "Gioi"
ElseIf CN < 8 Then ' Neu diem CN >=6.5 va < 8 thi se la kha
HL = "Kha"
ElseIf CN < 6.5 Then ' Neu diem CN >= 5 va < 6.5 thi se la trung binh
HL = "Trung binh"
ElseIf CN < 5 Then ' Neu diem < 5 thi se la Yeu
HL = Yeu
ElseIf CN < 3.5 Then ' Neu diem < 3.5 thi se "O lai lop"
GC = "O lai lop"
ElseIf CN > 5 Then ' Neu diem > 5 thi se "Duoc len lop"
GC = "Duoc len lop"
End If

Range("H3").Value = HL
Range("I3").Value = GC
End Sub
- Mọi người xem giùm mình sai ở khúc nào vậy.
- Lúc mình nhập điểm 6.5 và 5 vô tự nhiên là "Khá".
- Nhập 7.5 là "Giỏi".
- Còn phần ghi chú thì không để là "Ở lại lớp" hay là "Lên lớp" gì cả.
 
uhm bạn chuyển qua 2 dạng đó vẫn vậy là quá đúng => máy tính của bạn vẫn hoạt động tốt
bạn nên ghi là
Dim CN As double
 
Upvote 0
ăn cơm xong tỉnh táo lại mới thấy bạn có vài chỗ cần sửa
If CN >= 8 Then 'Neu Diem CN >= 8 thi se la gioi
HL = "Gioi"
ElseIf CN < 8 Then ' Neu diem CN >=6.5 va < 8 thi se la kha

điều này vô nghĩa . không cần phải có kiến thức gì về VBA . chỉ cần đã từng dùng hàm if trong excel thông thường cũng hiểu
bên trong cái ElseIf thì đã đương nhiên là < 8 rồi , ghi ElseIf CN < 8 để làm gì ?

ElseIf CN < 3.5 Then ' Neu diem < 3.5 thi se "O lai lop"
GC = "O lai lop"
ElseIf CN > 5 Then ' Neu diem > 5 thi se "Duoc len lop"

>5 => lên lớp
<3.5 => ở lại lớp
=> các học sinh trong khoảng 3.5 đến 5 phải chuyển trường vì không được xét lên lớp và cũng không được ở lại lớp
 
Upvote 0
- Mọi người xem giùm mình sai ở khúc nào vậy.
- Lúc mình nhập điểm 6.5 và 5 vô tự nhiên là "Khá".
- Nhập 7.5 là "Giỏi".
- Còn phần ghi chú thì không để là "Ở lại lớp" hay là "Lên lớp" gì cả.
Bạn đưa File lên đi ngồi đoán mò với nhau mệt lắm!
 
Upvote 0
Đây nè bạn. Mình làm đủ cách rồi nhưng không ra.
Bạn thử với mớ hỗn độn này:
Mã:
Sub kiem_tra()
Dim CN As Long
Dim HL, GC As String


CN = Range("G3").Value


If CN >= 8 Then 'Neu Diem CN >= 8 thi se la gioi
       HL = "Gioi"
       GC = "Duoc len lop"
   ElseIf CN >= 6.5 Then ' Neu diem CN >=6.5 va < 8 thi se la kha
       HL = "Kha"
       GC = "Duoc len lop"
   ElseIf CN >= 5 Then ' Neu diem CN >= 5 va < 6.5 thi se la trung binh
       HL = "Trung binh"
       GC = "Duoc len lop"
   Else ' Neu diem < 5 thi se la Yeu
       HL = "Yeu"
       GC = "O lai lop"
End If
Range("H3").Value = HL
Range("I3").Value = GC
End Sub
 
Upvote 0
Mình tham gia đoạn code có lẽ gọn hơn:

Mã:
Sub kiem_tra()
Range("H3").Value = WorksheetFunction.Lookup(Range("G3").Value, _
Array(0, 5, 6.5, 8), Array("Yeu", "Trung binh", "Kha", "Gioi"))
Range("I3").Value = IIf(Range("G3").Value < 5, "O lai lop", "Duoc len lop")
End Sub
 
Upvote 0
Mình tham gia đoạn code có lẽ gọn hơn:

Em cũng xin góp 1 code --=0

PHP:
Sub KiemTra()
Dim CN As Range
Set CN = Sheet1.Range("G3")
Range("H3").Value = Switch(CN > 10, "Kiem Tra lai Diem", CN >= 8, "Gioi", CN >= 6.5, "Kha", CN >= 5, "Trung Binh", CN >= 0, "Yeu")
Range("I3").Value = IIf(Range("G3").Value < 5, "O lai lop", "Duoc len lop")
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom