bài toán Max trong VBA! (2 người xem)

Liên hệ QC

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

hungpecc1

Thành viên gắn bó
Tham gia
24/8/12
Bài viết
1,709
Được thích
2,304
Giới tính
Nam
mình có 1 vướng mắc sau :
Đoạn code mình viết như sau :
....
Dim a as Range

bay gio minh muon tim gia tri max từ a(n,1) đến a(m,1)

Nếu dùng hàm for thì dài và phức tạp

Có cách nào dùng hàm max trong cel không ; worksheetFunction.max()
 
Không hiểu bạn làm phức tạp vấn đề này làm gì. Max trong Excel đã có sẵn
Nếu tìm hiểu bạn có thể tham khảo
PHP:
Function maxx(vung As Range)


        gtmax = Application.WorksheetFunction.max(vung)
        maxx = gtmax

End Function
 
Upvote 0
không phải , ý mình là nhứ sau :
Dim A(1 to 10) as Range
mình muốn tìm max từ ô A6 đến A8 chẳng hạn
còn nếu max = worksheetFunction ( A) thì là max từ A1 đến A10
 
Upvote 0
không phải , ý mình là nhứ sau :
Dim A(1 to 10) as Range
mình muốn tìm max từ ô A6 đến A8 chẳng hạn
còn nếu max = worksheetFunction ( A) thì là max từ A1 đến A10
Thì vầy:
Mã:
gtmax = WorksheetFunction.MAX(Range("A6:A8"))
Hay bạn muốn.. sao nữa?
 
Upvote 0
Bài toán như sau : có một mảng 1 chiều A() bây h mình muốn tìm max từ ô A(m) đến ô A(n) trong mảng A

ví dụ A(1)=3, A(2) =4, A(3)=6,A(4)=10 , GTM(A,2,3) = Max[A(2),A(3)] =6DD
Doan code VBA minh viet nhu sau, nhug ma khong chay!


Function GTM( A As Range, m,integer, n As Integer) As Double


v1 = vungdulieu.Resize(n, 1)
v2 = v1.Offset(m, 0).Resize(v1.Rows.Count - m, 1)
GTM = WorksheetFunction.Max(v2)
End Function



Cac Pac sua giup e , Thanks!
 
Upvote 0
Bài toán như sau : có một mảng 1 chiều A() bây h mình muốn tìm max từ ô A(m) đến ô A(n) trong mảng A

ví dụ A(1)=3, A(2) =4, A(3)=6,A(4)=10 , GTM(A,2,3) = Max[A(2),A(3)] =6DD
Doan code VBA minh viet nhu sau, nhug ma khong chay!


Function GTM( A As Range, m,integer, n As Integer) As Double


v1 = vungdulieu.Resize(n, 1)
v2 = v1.Offset(m, 0).Resize(v1.Rows.Count - m, 1)
GTM = WorksheetFunction.Max(v2)
End Function



Cac Pac sua giup e , Thanks!
Sửa thành vầy xem:
Mã:
Function GTM(A As Range, m As Long, n As Long) As Double
  Dim Rng As Range
  Set Rng = A.Offset(m - 1).Resize(n, 1)
  GTM = WorksheetFunction.Max(Rng)
End Function
Áp dụng: =GTM(A1:A4,2,3)
 
Upvote 0
cảm ơn pác nhiều ! dưa vào đoạn code của pac e xin mở rộng bài toán như saU co dc khong ?

Giả sử A là mảng 2 chiều ,


Function GTM(A As Range,i as Long,m As Long, n As Long) As Double
' Trong do i la cot muon tinh max
Dim Rng As Range
Set Rng = A.Offset(m - 1,i).Resize(n, 1)
GTM = WorksheetFunction.Max(Rng)
End Function

 
Upvote 0
Khan cap,

Trong file cel e go = GTM(A:F,1,3) nó báo lỗi value là sao pác nhj
 
Upvote 0
cảm ơn pác nhiều ! dưa vào đoạn code của pac e xin mở rộng bài toán như saU co dc khong ?

Giả sử A là mảng 2 chiều ,


Function GTM(A As Range,i as Long,m As Long, n As Long) As Double
' Trong do i la cot muon tinh max
Dim Rng As Range
Set Rng = A.Offset(m - 1,i).Resize(n, 1)
GTM = WorksheetFunction.Max(Rng)
End Function

Sửa thành vầy:
Mã:
Function GTM(A As Range, i As Long, m As Long, n As Long) As Double
' Trong do i la cot muon tinh max
  Dim Rng As Range
  Set Rng = A.Resize(n, 1).Offset(m - 1, i - 1)
  GTM = WorksheetFunction.Max(Rng)
End Function
-------------------
Khan cap,

Trong file cel e go = GTM(A:F,1,3) nó báo lỗi value là sao pác nhj
Hàm trước nếu báo lỗi thì sửa thành vầy nhé:
Mã:
Function GTM(A As Range, m As Long, n As Long) As Double
  Dim Rng As Range
  Set Rng = A.Resize(n, 1).Offset(m - 1)
  GTM = WorksheetFunction.Max(Rng)
End Function
Tại bạn "chơi" nguyên cột A:F nên nó không thể Offset được là đúng rồi ---> Vậy nên ta Resize trước, xong mới Offset sau
---------------
Mà hỏi lại tí: Mấy cái này nó quá đơn giản, sao không gõ công thức trực tiếp lên bảng tính? Cần gì phải viết code cho nó mệt
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bác nhiều !Nhân đây e cũng xin lỗi diễn đàn vì đã spam, do e cần tính toán gấp,
chuong trinh e nho cac pac check e ap dung de to hop noi luc cua thap thep

vi du e muon tim luc nen lon nhat cua thanh 1 -20 :

e se go nhu sau = GTM("1-20",A:F,1,5) :D thanh cac pac
 
Upvote 0
Mình có vấn đề như zầy:
Các bạn viết "code vba" hộ mình với: ý mình là tìm giá trị lớn nhất của nội lực P ứng với COT1 rồi tô đậm "COT1";
tìm giá trị lớn nhất của nội lực M2 ứng với COT1 rồi tô đậm "COT1";
tìm giá trị nhỏ nhất của nội lực M2 ứng với COT1 rồi tô đậm "COT1";
tìm giá trị lớn nhất của nội lực M3 ứng với COT1 rồi tô đậm "COT1";
tìm giá trị nhỏ nhất của nội lực M2 ứng với COT1 rồi tô đậm "COT1"_mình có ví dụ ở file đính kèm rồi đó!!! - bạn thử xem bảng nội lực!!!! Thank you very much@@@
 
Upvote 0
Cảm ơn bác nhiều !Nhân đây e cũng xin lỗi diễn đàn vì đã spam, do e cần tính toán gấp,
chuong trinh e nho cac pac check e ap dung de to hop noi luc cua thap thep

vi du e muon tim luc nen lon nhat cua thanh 1 -20 :

e se go nhu sau = GTM("1-20",A:F,1,5) :D thanh cac pac

Mình không biết về code nhưng xin cho mình spam 1 tí: Bạn viết Tiếng Việt có dấu để người đọc khỏi bực mình nha.
 
Upvote 0
Mình có vấn đề như zầy:
Các bạn viết "code vba" hộ mình với: ý mình là tìm giá trị lớn nhất của nội lực P ứng với COT1 rồi tô đậm "COT1";
tìm giá trị lớn nhất của nội lực M2 ứng với COT1 rồi tô đậm "COT1";
tìm giá trị nhỏ nhất của nội lực M2 ứng với COT1 rồi tô đậm "COT1";
tìm giá trị lớn nhất của nội lực M3 ứng với COT1 rồi tô đậm "COT1";
tìm giá trị nhỏ nhất của nội lực M2 ứng với COT1 rồi tô đậm "COT1"_mình có ví dụ ở file đính kèm rồi đó!!! - bạn thử xem bảng nội lực!!!! Thank you very much@@@


^^ buổi trưa ko ngủ được xem lại những câu hỏi ngày xưa mình nhờ diễn đàn GPE giải đáp
( thấy ngày xưa mình ngây và ngô quá :D),tiện thấy bài trên chưa có ai giải đáp do đó :

----> nếu nad582 còn cần code để lọc dữ liệu như trên ,thì pm lại vào topic này, mình sẽ hướng dấn bạn,
 
Upvote 0
Web KT

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

Back
Top Bottom