Hỏi {Max(if())} = VBA

  • Thread starter Thread starter ThuNghi
  • Ngày gửi Ngày gửi
Liên hệ QC

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Tôi có range soct như sau:
070701; 070702;...;070799;070801;070802;070803
Tôi dùng code sau để lấy max của số CT bắt đầu là 4 ký tự đầu, số CT là 2 ký tự cuối.
Mã:
Sub GanSoCT()
    Cells(2, 2).Value = "0708"
    Cells(2, 3).FormulaArray = "=MAX(IF(LEFT(SoCT,4)=R2C2,RIGHT(SoCT,2),0)+1)"
End Sub
Như vậy phải gán "0708" vào Cells(2,2), không hay
Nhờ các bạn chỉ hộ code mà cần phải Cells(2,2) và dùng WorksheetFunction. Đại khái như sau
i = "0708"
Cells(2, 3).FormulaArray = WorksheetFunction.Max(IIf(Left(Range("SoCT"), 4) = i, Right(Range("SoCT"), 2), 0) + 1)
Cám ơn nhiều!
 
Bạn xem thế này được không.
Mã:
Sub GanSoCT()
    'Cells(2, 2).Value = "0708"
    Cells(2, 3).FormulaArray = "=MAX(IF(LEFT(SoCT,4)=""" & Cells(2, 2).Value & """,RIGHT(SoCT,2),0)+1)"
    Cells(2, 3).Value =Cells(2, 3).Value 
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thanks! Có thể gắn WorksheetFunction.Max vào để bỏ bớt một số dấu ". Công thức mảng có dùng WorksheetFunction. được không.
 
Upvote 0
Web KT

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

Back
Top Bottom