Nhờ các Anh viết cho đoạn code tìm giá trị max của cột A trong các Sheet có tên Ai??? (1 người xem)

Liên hệ QC

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

quangthanhdu

Thành viên chính thức
Tham gia
21/5/10
Bài viết
51
Được thích
4
TÌM GIÁ TRỊ LỚN NHẤT TRONG CÁC SHEETS CÓ TÊN A1, A2, A3, A4….Ai
DỰA VÀO TỪNG SHEET( chỉ xét Sheet có tên A1, A2…Ai thôi),
TÌM GIÁ TRỊ LỚN NHẤT CỦA CỘT A TRONG TẤT CẢ CÁC SHEET CÓ TÊN A1 , A2…. Ai
SHEET Ai CÓ THỂ THÊM VÀO
Vấn đề khó ở đây là khi em cần thêm 1 hoặc nhiều sheet có tên là A4, A5, hoặc là Ai
(i= 6 ,7….)
Thì code cho nút "Cap nhat" như thế nào để làm nhanh việc này!
 

File đính kèm

TÌM GIÁ TRỊ LỚN NHẤT TRONG CÁC SHEETS CÓ TÊN A1, A2, A3, A4….Ai
DỰA VÀO TỪNG SHEET( chỉ xét Sheet có tên A1, A2…Ai thôi),
TÌM GIÁ TRỊ LỚN NHẤT CỦA CỘT A TRONG TẤT CẢ CÁC SHEET CÓ TÊN A1 , A2…. Ai
SHEET Ai CÓ THỂ THÊM VÀO
Vấn đề khó ở đây là khi em cần thêm 1 hoặc nhiều sheet có tên là A4, A5, hoặc là Ai
(i= 6 ,7….)
Thì code cho nút "Cap nhat" như thế nào để làm nhanh việc này!

Bạn dùng công thức cho gọn. Code làm gì cho mệt.
Mã:
=MAX('A1:A4'!A:A)
Lưu ý:
- Giữa Sheet A1 và A4 không được có Sheet khác.
- Khi thêm sheet Ai mới thì cứ kéo sheet Ai mới vào giữa A1 và A4 là được.
- Nếu muốn xếp các Sheet Ai theo thứ tự thì tạo sẵn Sheet A100 để ở cuối cùng trong dãy Sheet Ai rồi làm công thức tương tự MAX('A1:A100'!A:A). Khi thêm Ai cứ thêm vào giữa.
 
Upvote 0
TÌM GIÁ TRỊ LỚN NHẤT TRONG CÁC SHEETS CÓ TÊN A1, A2, A3, A4….Ai
DỰA VÀO TỪNG SHEET( chỉ xét Sheet có tên A1, A2…Ai thôi),
TÌM GIÁ TRỊ LỚN NHẤT CỦA CỘT A TRONG TẤT CẢ CÁC SHEET CÓ TÊN A1 , A2…. Ai
SHEET Ai CÓ THỂ THÊM VÀO
Vấn đề khó ở đây là khi em cần thêm 1 hoặc nhiều sheet có tên là A4, A5, hoặc là Ai
(i= 6 ,7….)
Thì code cho nút "Cap nhat" như thế nào để làm nhanh việc này!
Vầy coi có được không
PHP:
Sub lay_max()
Dim sh As Worksheet
[a:b].Clear
[B1].Formula = "=max(B2:B100)"
For Each sh In Worksheets
  If sh.Name Like "A" & "*" Then
    Cells(65536, 1).End(3).Offset(1) = sh.Name
    Cells(65536, 2).End(3).Offset(1) = Application.Max(sh.[a:a])
  End If
Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Code của Anh dùng ok rồi nhưng nhờ anh viết thêm:
1. Mỗi lần chạy code thì dữ liệu cũ sẽ xóa sạch
2. Ghi vào ô B1 giá trị Max vừa tìm được trong các giá trị Max của từng Sheet của Cột A.
 
Lần chỉnh sửa cuối:
Upvote 0
Code của Anh dùng ok rồi nhưng nhờ anh viết thêm:
1. Mỗi lần chạy code thì dữ liệu cũ sẽ xóa sạch
2. Ghi vào ô B1 giá trị Max vừa tìm được trong các giá trị Max của từng Sheet của Cột A.

Xem nội dung code đã sửa ở bài số 3
 
Upvote 0
Vầy coi có được không
PHP:
Sub lay_max()
Dim sh As Worksheet
[a:b].Clear
[B1].Formula = "=max(B2:B100)"
For Each sh In Worksheets
  If sh.Name Like "A" & "*" Then
    Cells(65536, 1).End(3).Offset(1) = sh.Name
    Cells(65536, 2).End(3).Offset(1) = Application.Max(sh.[a:a])
  End If
Next
End Sub
"Dzái" Trời trong file của bạn quangthanhdu không có các sheet mang tên có chữ A ở đầu mà không phải số đằng sau, thí dụ như: AnhQuangHai, AnhBaTe ......, chứ không thì....ghê lắm
Híc
 
Upvote 0
"Dzái" Trời trong file của bạn quangthanhdu không có các sheet mang tên có chữ A ở đầu mà không phải số đằng sau, thí dụ như: AnhQuangHai, AnhBaTe ......, chứ không thì....ghê lắm
Híc
Thì tác giả ráng chịu. Ai kêu yêu cầu như vậy làm chi. Hic
 
Upvote 0
Xem nội dung code đã sửa ở bài số 3
Sao Quang Hải không "táng" vào sheet1 1 lần thôi mà phải mỗi sheet A* lại ghi vào sheet1 một dòng vậy?
PHP:
Private Sub CommandButton1_Click()
Dim Ws As Worksheet, Arr(1 To 1000, 1 To 2), K As Long
For Each Ws In Worksheets
    If Ws.Name Like "A*" Then
        K = K + 1: Arr(K, 1) = Ws.Name
        Arr(K, 2) = Application.WorksheetFunction.Max(Ws.[A:A])
    End If
Next
    With Sheet1
    .[A1] = "MAX=": .[B1].Formula = "=MAX(B2:B" & K + 1 & ")"
    .[A2:A1000].ClearContents: .[A2].Resize(K, 2) = Arr
    End With
End Sub
Thấy ví dụ trong các sheet A* dữ liệu cột A đều từ nhỏ đến lớn, hổng biết phải vậy không, nếu vậy thì chỉ cần chọn giá trị ô dưới cùng, không cần Max().
 
Upvote 0
Web KT

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

Back
Top Bottom