Hàm IF lồng nhau trong Macro (1 người xem)

  • Thread starter Thread starter vetgo
  • Ngày gửi Ngày gửi
Liên hệ QC

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

vetgo

Thành viên mới
Tham gia
6/10/11
Bài viết
13
Được thích
0
Em có 1 hàm tính khối lượng đơn giản như sau:
Function Mong12(d, L)
If d = 800 Then
Mong12 = L * 0.5
Else
End If
End Function


Bây giờ em muốn vẫn dùng chung công thức Mong12 nhưng giá trị d lại có thể thay đổi từ 600, 800, 1000, 1200, 1500, 2000 và tương ứng với nó là Mong12=L*... tương ứng.
Em đang tập tọe học Macro nên mong các bác chỉ giáo ạ!
 
Bạn dùng
Select Case... nhé
Mã:
Function Mong12(d, L)
Select Case d
    Case Is = 600
        L = 0
    Case Is = 800
        L = 0.5
'cái khác tuong tu......................
End Select
   Mong12 = L * 0.5
End Function
 
Upvote 0
Bạn dùng
Select Case... nhé
Mã:
Function Mong12(d, L)
Select Case d
    Case Is = 600
        L = 0
    Case Is = 800
        L = 0.5
'cái khác tuong tu......................
End Select
   Mong12 = L * 0.5
End Function
Nếu mình hiểu đúng thì code này bị...."tèo"
Có thể là thế này:
- Tạo mảng 1 (mảng A)chứa các giá trị của d
- Tạo mảng 2 (mảng B) chứa các giá trị tương ứng với các giá trị của d
- Cho chạy vòng lặp, ( hoặc dùng Match kiếm vị trí của giá trị d truyền vào Function trên vùng chứa các giá trị d) khi nào giá trị d truyền vào Function bằng giá trị trong mảng 1 (mảng A) thì lấy giá trị L ( truyền vào Function) nhân với giá trị tương ứng với giá trị d trong mảng 2 (mảng B)
Và, nếu ( lại nếu) mình hiểu đúng, code có thể có dạng thế này
Mã:
Public Function Mong12(d As Double, L As Double) As Double
    Dim A, B, I, Kq
        A = Array(600, 800, 1200, 1500, 3000)' [COLOR=#ff0000]giá trị này của ai....người ấy biết[/COLOR]
        B = Array(1.5, 2.3, 3.7, 5, 8.9)' [COLOR=#ff0000]giá trị này của ai....người ấy biết[/COLOR]
            For I = 0 To UBound(A)
                If A(I) = d Then Kq = L * B(I): Exit For
            Next I
    Mong12 = Kq
End Function
Thân
 
Upvote 0
Web KT

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

Back
Top Bottom