diemngoc.ts
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 1/8/18
- Bài viết
- 16
- Được thích
- 0
Cảm ơn mọi người đã giúp đỡ em những lần trước ạ. Em mới làm quen VBA nên giờ lại gặp lỗi nữa ạ, Vòng lặp FOR của em nó không trả về giá trị cần tìm mà cứ trả về giá trị đầu tiên không à. Hàm của em là:
Hàm của em e muốn cho n chạy trước tương ứng với n sẽ đưa ra giá trị số lượng và nếu nó lớn hơn dữ liệu đầu vào của em thì sẽ đưa ra cặp n và j. Nhưng em nhập:
=ketqua(2017,1012,900) nó cứ ra 4-15 trong khi 0.85*4*15^2<900.
Mong mọi người giúp em ạ.
Mã:
Function ketqua( a,z, solieu As String)
If a < 2018 And solieu = "lai" Then
ketqua = "0-0"
ElseIf a >= 2018 And solieu = "lai" Then
If (z Mod 250 = 0) Then
n = z / 250 - 1
ElseIf (z Mod 250 <> 0) Then
n = WorksheetFunction.RoundDown(z / 250, 0)
End If
ketqua = n & "-5"
ElseIf solieu <> "lai" Then
Dim soluong As Variant
soluong = Array(5, 10, 15, 25, 35)
khoang = 80
If (z Mod 250 = 0) Then
n_min = z / 250 - 1
ElseIf (z Mod 250 <> 0) Then
n_min = WorksheetFunction.RoundDown(z / 250, 0)
End If
n_max = WorksheetFunction.Max(1, WorksheetFunction.RoundDown((z - khoang * 2 - 25) / (khoang + 25), 0) + 1)
For j = 0 To UBound(soluong)
For i = n_min To n_max
If 0.85*i * soluong(j)^2 >= solieu Then Exit Function
ketqua = i & "-" & soluong(j)
Next i
Next j
End If
End Function
Hàm của em e muốn cho n chạy trước tương ứng với n sẽ đưa ra giá trị số lượng và nếu nó lớn hơn dữ liệu đầu vào của em thì sẽ đưa ra cặp n và j. Nhưng em nhập:
=ketqua(2017,1012,900) nó cứ ra 4-15 trong khi 0.85*4*15^2<900.
Mong mọi người giúp em ạ.
File đính kèm
Lần chỉnh sửa cuối: