quangthanhdu
Thành viên chính thức
- Tham gia
- 21/5/10
- Bài viết
- 51
- Được thích
- 4
Public Function ECh(hRange As Range, eRange As Range, D) As Double
Dim B, hCh As Double, WF
hCh = hRange.Cells(1, 1)
ECh = eRange.Cells(1, 1)
Set WF = Application.WorksheetFunction '<=|'
B = 1.114 * (WF.Sum(hRange) / D) ^ 0.12
MsgBox B
If hRange.Rows.Count = 1 Then
ECh = eRange.Cells(1, 1)
Else
For i = 2 To hRange.Rows.Count
ECh = B * ECh * ((1 + hRange.Cells(i, 1) / hCh * _
(eRange.Cells(i, 1) / ECh) ^ (1 / 3)) / (1 + hRange.Cells(i, 1) / hCh)) ^ 3
Next i '<=|'
End If
End Function
Hàm của bạn gán kết quả cái nọ đè cái kia, nhưng chưa hiểu ý bạn định làm thế nào? Cứ diên giải nôm na ra để hiểu thì có kết quả thôi chứ hàm này không khó.
Trong VBA làm gì có hàm SUM, phải mượn tạm WorksheetFunction mà dùng!công thức diễn giải như sau
hàm Ech( vùng1, vùng 2 , giatri)
giả sử vùng 1 là A1:A2
vùng 2 là C1:C2
giatri là E2
Mình bị lỗi ở dòng sau
B = 1.114 * (Sum(hrange) / D) ^ 0.12
( hàm sum ở đây sẽ cộng tất cả vùng 1, nhưng lại bị lỗi..không cộng được các giá trị chọn ở vùng1.)