Mong mọi người xem và sửa giúp công thức Hàm tự tạo Ech

Liên hệ QC

quangthanhdu

Thành viên chính thức
Tham gia
21/5/10
Bài viết
51
Được thích
4
Công thức trong file excel đính kèm bị lỗi hàm sum (Trong VB).... mong mọi người xem giúp
 

File đính kèm

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ó.
 
Bạn sai 2 chổ

PHP:
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


Những lời khuyên:

Nên có câu lệnh: Option Explicit

Nên dùng fím {TAB} để thụt đầu dòng các dòng lệnh cho dễ nhìn; Có vậy bạn đã không bị mắc lỗi thứ 2;

Tên biến nên có xen kẻ chữ thường & chữ hoa để dễ bề kiểm tra chính tả khi nhập dòng lệnh mới có dùng đến chúng;

Tên biến không nên cụt lũn chỉ là 1 ký tự; Loại khai báo đó chỉ thích hợp cho các lập trình viên chuyên nghiệp & 'Hàn lâm'


Chúc gặt hái nhiều thành công mai sau!
 
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ó.

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.)
 
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.)
Trong VBA làm gì có hàm SUM, phải mượn tạm WorksheetFunction mà dùng!
Thay
B = 1.114 * (Sum(hrange) / D) ^ 0.12
thành:
B = 1.114 * (WorksheetFunction.Sum(hrange) / D) ^ 0.12
Ngoài ra, vòng lập For bị thiếu Next nhé
Bài trên sư phụ SA_DQ đã sửa mà hình như bạn không có xem! Hic...
 
Web KT

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

Back
Top Bottom