VBA cho hàm Max (1 người xem)

Liên hệ QC

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

saleslogistics68

Thành viên mới
Tham gia
14/3/14
Bài viết
28
Được thích
1
Em là thành viên mới. Em có một vấn đề của Hàm Max sử dụng VBA. Em đã thử record Marco để xem code nhưng không được. Nhờ các cao thủ giúp em. Em muốn sử dụng 1 VBA tìm số lớn nhất trong một cột và lấy số lớn nhất trừ đi các số còn lại như file đính kèm. Em chân thành cảm ơn
 

File đính kèm

Em là thành viên mới. Em có một vấn đề của Hàm Max sử dụng VBA. Em đã thử record Marco để xem code nhưng không được. Nhờ các cao thủ giúp em. Em muốn sử dụng 1 VBA tìm số lớn nhất trong một cột và lấy số lớn nhất trừ đi các số còn lại như file đính kèm. Em chân thành cảm ơn
Sao phải dùng VBA?
Tìm giá trị lớn nhất của B2:B7: =MAX(B2:B7)
Lấy giá trị lớn nhất trừ cho các giá trị còn lại: =MAX(B2:B7)*2-SUM(B2:B7)
 
Upvote 0
Em là thành viên mới. Em có một vấn đề của Hàm Max sử dụng VBA. Em đã thử record Marco để xem code nhưng không được. Nhờ các cao thủ giúp em. Em muốn sử dụng 1 VBA tìm số lớn nhất trong một cột và lấy số lớn nhất trừ đi các số còn lại như file đính kèm. Em chân thành cảm ơn
Bạn nêu câu hỏi chưa rõ ràng làm sao làm đây. Ví dụ tạo hàm Max đặt vào chổ nào, sau tính được max lấy nó trừ các số còn lại là sao (Max-các số nhỏ hơn max, hay lấy max - cho từng số, và kết quả là một số hay nhiều số, ghi kết quả vào đâu). Lần sau phải nêu rõ thì mới giúp được chứ.
 
Upvote 0
Bạn nêu câu hỏi chưa rõ ràng làm sao làm đây. Ví dụ tạo hàm Max đặt vào chổ nào, sau tính được max lấy nó trừ các số còn lại là sao (Max-các số nhỏ hơn max, hay lấy max - cho từng số, và kết quả là một số hay nhiều số, ghi kết quả vào đâu). Lần sau phải nêu rõ thì mới giúp được chứ.

Em có nêu trong file đính kèm rồi đó anh. Em đang tìm hiểu VBA nên xài VBA chứ công thức thì em có thể xử lý được. Đại loại là e có 1 cột mảng gồm các số. Em muốn tìm số lớn nhất trong cột đó. Và lấy số lớn nhất trừ đi các số còn lại
 
Upvote 0
Em có nêu trong file đính kèm rồi đó anh. Em đang tìm hiểu VBA nên xài VBA chứ công thức thì em có thể xử lý được. Đại loại là e có 1 cột mảng gồm các số. Em muốn tìm số lớn nhất trong cột đó. Và lấy số lớn nhất trừ đi các số còn lại
Bạn sử dụng 2 hàm sau:
Mã:
Function TimMax(vung As Range)
TimMax = Application.WorksheetFunction.Max(vung)
End Function


Function SoHieu(vung As Range)
solon = TimMax(vung)
SoHieu = solon - Application.WorksheetFunction.SumIf(vung, "<>" & solon)
End Function
sử dụng như sau:
Mã:
MsgBox "So lon nhat la: " & TimMax(Range("B2:B7"))
MsgBox "So lon tru di tong cac so nho la: " & SoHieu(Range("B2:B7"))
 
Upvote 0
Em có nêu trong file đính kèm rồi đó anh. Em đang tìm hiểu VBA nên xài VBA chứ công thức thì em có thể xử lý được. Đại loại là e có 1 cột mảng gồm các số. Em muốn tìm số lớn nhất trong cột đó. Và lấy số lớn nhất trừ đi các số còn lại

Hàm làm được thì theo cách tính khi làm bằng hàm rồi viết bằng VBA.
Theo cách tính của bài #2 của huuthang_bd bên trên bạn có thể viết thế này:
PHP:
Public Sub GPE()
Dim Arr(), I As Long, Max_ As Double, Sum_ As Double
Arr = Range("B2:B7").Value
For I = 1 To UBound(Arr, 1)
    If Arr(I, 1) > Max_ Then Max_ = Arr(I, 1)
    Sum_ = Sum_ + Arr(I, 1)
Next I
Range("K1") = Max_
Range("K2") = Max_ * 2 - Sum_
End Sub
 
Upvote 0
Hàm làm được thì theo cách tính khi làm bằng hàm rồi viết bằng VBA.
Theo cách tính của bài #2 của huuthang_bd bên trên bạn có thể viết thế này:
PHP:
Public Sub GPE()
Dim Arr(), I As Long, Max_ As Double, Sum_ As Double
Arr = Range("B2:B7").Value
For I = 1 To UBound(Arr, 1)
    If Arr(I, 1) > Max_ Then Max_ = Arr(I, 1)
    Sum_ = Sum_ + Arr(I, 1)
Next I
Range("K1") = Max_
Range("K2") = Max_ * 2 - Sum_
End Sub

Sub Doanhso()
'
' Doanhso Macro
'


'
Columns("H:H").Select
Selection.Style = "Comma"
Range("H4").Select
ActiveCell.FormulaR1C1 = "=MAX(RC[-1]:R[4996]C[-1])*2-SUM(RC[-1]:R[4996]C[-1])"
Range("H5").Select
End Sub

Cái này em tự dùng record Marco ghi lại nè hehe..
 
Upvote 0
Sub Doanhso()
'
' Doanhso Macro
'


'
Columns("H:H").Select
Selection.Style = "Comma"
Range("H4").Select
ActiveCell.FormulaR1C1 = "=MAX(RC[-1]:R[4996]C[-1])*2-SUM(RC[-1]:R[4996]C[-1])"
Range("H5").Select
End Sub

Cái này em tự dùng record Marco ghi lại nè hehe..

Ghi macro để viết 1 hàm Excel vào 1 ô ?
Dùng để bấm nút chạy macro khỏi phải viết công thức ?
Nếu dữ liệu cột G dòng cuối không phải là 4996 thì phải sửa lại Sub cho kết quả ô H4 ?
Nếu khoái Macro thì chỉnh nó lại 1 chút như vầy thử xem:
PHP:
Public Sub GPE()
Dim Rws As Long
Rws = Range("G65536").End(xlUp).Row
Range("H4") = "=Max(RC[-1]:R" & Rws & "C[-1])*2 - Sum(RC[-1]:R" & Rws & "C[-1])"
End Sub
 
Upvote 0
Hàm làm được thì theo cách tính khi làm bằng hàm rồi viết bằng VBA.
Theo cách tính của bài #2 của huuthang_bd bên trên bạn có thể viết thế này:
PHP:
Public Sub GPE()
Dim Arr(), I As Long, Max_ As Double, Sum_ As Double
Arr = Range("B2:B7").Value
For I = 1 To UBound(Arr, 1)
    If Arr(I, 1) > Max_ Then Max_ = Arr(I, 1)
    Sum_ = Sum_ + Arr(I, 1)
Next I
Range("K1") = Max_
Range("K2") = Max_ * 2 - Sum_
End Sub
bài này sẽ sai nếu dãy số toàn âm, nếu áp dụng kỹ thuật lính canh thì max_= phần tử đầu tiên và i bắt đầu bằng 2
 
Upvote 0
Ghi macro để viết 1 hàm Excel vào 1 ô ?
Dùng để bấm nút chạy macro khỏi phải viết công thức ?
Nếu dữ liệu cột G dòng cuối không phải là 4996 thì phải sửa lại Sub cho kết quả ô H4 ?
Nếu khoái Macro thì chỉnh nó lại 1 chút như vầy thử xem:
PHP:
Public Sub GPE()
Dim Rws As Long
Rws = Range("G65536").End(xlUp).Row
Range("H4") = "=Max(RC[-1]:R" & Rws & "C[-1])*2 - Sum(RC[-1]:R" & Rws & "C[-1])"
End Sub
Anh Ba Tê, thực tế là cái file marco này em viết cho cái file hôm bữa em gởi lên GPE đó anh. Vì sheet em cần tìm GTLN đc lọc từ file dữ liệu tổng của Nhân Viên Trọng, nên nếu không áp dụng Marco thì nó không tự động chạy công thức được anh. Cảm ơn anh đã chỉnh sửa lại marco của em. Em hiểu được thêm tí xíu nữa hihi
 
Upvote 0
Em có nêu trong file đính kèm rồi đó anh. Em đang tìm hiểu VBA nên xài VBA chứ công thức thì em có thể xử lý được. Đại loại là e có 1 cột mảng gồm các số. Em muốn tìm số lớn nhất trong cột đó. Và lấy số lớn nhất trừ đi các số còn lại

Nếu có nhiều hơn 1 số lớn nhất thì sao?
 
Upvote 0
Web KT

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

Back
Top Bottom