Tìm giá trị tuyệt đối lớn nhất của 3 số

fantom23

Yêu THVBA
Mình mới học VBA excel, đang viết 1 hàm (sử dụng được như kiểu Sum) tìm giá trị tuyệt đối lớn nhất của 3 số nhưng bị lỗi như sau
Rất mong các cao thủ chỉ giáo ạ
Mã:
Function Max3(a, b, c As Double) As Double
Dim m As Double
m = a
If Abs(b) > Abs(m) Then m = b
If Abs(c) > Abs(m) Then m = c
Max3 = m
End Function
Sub abc()
Cells(1, 1) = 1
End Sub
Khi sử dụng với 3 ô số bất kì thì nó báo lỗi #REF! ...

Các bác xem giúp e !
 

tuhocvba

Administrator
Thành viên BQT
1. Lỗi REF là lỗi tham chiếu, do bạn đặt tên hàm trùng với địa chỉ trên Excel.
Bạn nên đặt tên hàm có 4 ký tự trở lên.
Bạn cần đăng nhập để thấy hình ảnh

Ở đây tôi sửa tên hàm của bạn thành 4 ký tự như sau:
Mã:
Function gtln(a, b, c As Double) As Double
Dim m As Double
m = a
If Abs(b) > Abs(m) Then m = b
If Abs(c) > Abs(m) Then m = c
gtln= m
End Function
Lúc này xuất hiện lỗi value.
Bạn cần đăng nhập để thấy hình ảnh

2. Do đầu vào của hàm là 3 số chứ không phải là một vùng range. Tôi sửa lại như sau:
Mã:
Function gtln(r As Range) As Double
Dim m As Double, c As Object
m = 0
    For Each c In r
        If m < Abs(c.Value) Then m = c
        
    Next c

gtln = m
End Function
Bạn cần đăng nhập để thấy hình ảnh


3. Bạn lưu ý phải sử dụng thẻ Code khi viết code trên forum. Xin xem mục 4 trong .
 

fantom23

Yêu THVBA
Mình đang viết tập bạn ạ
Ví dụ như mỗi ô trừ đi thêm 1 số khác nữa.. thì có áp dụng đc Max(... ) k nhỉ?
 
Top