Short danh sách cột mà trong đó có ô merger cell

Liên hệ QC
Mong muốn cuối cùng của bạn là như thế nào nhỉ.
Tức là sort văn phòng theo a-z, sort xong thì vẫn phải giữ nguyên những ô nào mà trước khi sort người ta merge cell.

Túm lại là thế này : từ nhiều cái danh sách nhiều người gởi cho mình (mình up 1 file mẫu của các văn phòng miền bắc lên thôi, mấy file kia cũng y chang, chỉ là ở miền trung với miền Nam). mình ghép tất cả lại thành 1 file tổng, rồi sort cột văn phòng theo thứ tự từ A-Z. Yêu cầu chung là như vậy.

Quá trình sort thì nó phát sinh vấn đề là trong file có nhiều ô có merge cell nên nó không cho sort. vậy mình phải làm cách nào để sort được là xong.

Nếu bạn unmerge rồi sort thì sau khi sort xong, phải merge lại y chang như cũ , chứ nếu không thì dữ liệu sẽ bị sai
 
Lần chỉnh sửa cuối:
Túm lại là thế này : từ nhiều cái danh sách nhiều người gởi cho mình (mình up 1 file mẫu của các văn phòng miền bắc lên thôi, mấy file kia cũng y chang, chỉ là ở miền trung với miền Nam). mình ghép tất cả lại thành 1 file tổng, rồi sort cột văn phòng theo thứ tự từ A-Z. Yêu cầu chung là như vậy.
Quá trình sort thì nó phát sinh vấn đề là trong file có nhiều ô có merge cell nên nó không cho sort. vậy mình phải làm cách nào để sort được là xong.
Nếu bạn unmerge rồi sort thì sau khi sort xong, phải merge lại y chang như cũ , chứ nếu không thì dữ liệu sẽ bị sai
Bạn không nói rõ ngay từ đầu nên mình chỉ làm một file, còn lại bạn tự lo nhé.
 

File đính kèm

  • Lịch làm việc 2 tuan AT _North.xlsm
    32.7 KB · Đọc: 7
Tức là sort văn phòng theo a-z, sort xong thì vẫn phải giữ nguyên những ô nào mà trước khi sort người ta merge cell.

Túm lại là thế này : từ nhiều cái danh sách nhiều người gởi cho mình (mình up 1 file mẫu của các văn phòng miền bắc lên thôi, mấy file kia cũng y chang, chỉ là ở miền trung với miền Nam). mình ghép tất cả lại thành 1 file tổng, rồi sort cột văn phòng theo thứ tự từ A-Z. Yêu cầu chung là như vậy.

Quá trình sort thì nó phát sinh vấn đề là trong file có nhiều ô có merge cell nên nó không cho sort. vậy mình phải làm cách nào để sort được là xong.

Nếu bạn unmerge rồi sort thì sau khi sort xong, phải merge lại y chang như cũ , chứ nếu không thì dữ liệu sẽ bị sai
Ông thớt có dùng code của tôi không mà im re vậy. Ít nhất cũng nói là nó không chạy được hay là ABC gì chứ!
 
Ông thớt có dùng code của tôi không mà im re vậy. Ít nhất cũng nói là nó không chạy được hay là ABC gì chứ!
Nếu bạn có từng "profile" thớt sẽ không phải hỏi câu này.
Lắm lúc người hỏi sau một đống bài tới lui sẽ không còn nhớ câu hỏi bạn đầu của mình (có khi nó xoay chiều 180 độ), và cứ làm theo kiểu hỏi được thêm khúc nào, chắp thêm khúc nấy.
Bạn không thấy hỏi thêm gì nữa thì cứ tin là người ta đang chú trọng vào code khác.
 
Ước gì có cái Center across selection theo chiều dọc thì ngon. Mình mới đăng toppic, có cái này thì sẽ giải quyết được vấn đề của bạn.
 
Để tránh tình trạng này thì insert nó xuống 1 dòng, rồi đặt tên cho từng ô. Rồi filter hàng mình vừa insert xuống! Sau đó hide nó đi.
Muốn nó liên kết phải tạo table tính từ hàng insert xuống.
 
Mình xem file của bạn thì thấy chỉ Merge theo phương ngang. Mình thấy vấn đề này thì ko khó. Bạn chỉ cần chuyển toàn bộ những ô đang "Merge" sang dạng "Center across seletion" là xong. Cụ thể: Ctrl + A để chọn tất cả các ô (hoặc bôi khu vực dữ liệu), ấn Ctrl + 1 và Chọn lại trong bảng "Format cell" như hình dưới là được.
1627365687080.png
 
Nếu bạn có từng "profile" thớt sẽ không phải hỏi câu này.
Lắm lúc người hỏi sau một đống bài tới lui sẽ không còn nhớ câu hỏi bạn đầu của mình (có khi nó xoay chiều 180 độ), và cứ làm theo kiểu hỏi được thêm khúc nào, chắp thêm khúc nấy.
Bạn không thấy hỏi thêm gì nữa thì cứ tin là người ta đang chú trọng vào code khác.
Chưa biết ý bác là thế nào chứ em thấy chức danh + đơn vị của thớt là "nể" rồi.
 
Ý bạn có phải như vầy?
 

File đính kèm

  • Lịch làm việc 2 tuan AT _North.xlsx
    17.1 KB · Đọc: 9
Nhờ anh chị hướng dẫn em cách nào để sort danh sách mà trong đó có ô bị merger cell
em phải tổng hợp danh sách lịch làm việc của các văn phòng toàn quốc, sau khi gom nhiều file báo cáo của họ lại thành 1 file tổng, thì em cần sort tên văn phòng, sắp xếp theo chữ cái từ A-Z, nhưng nó không sort được vì trong đó có những ô merger cell. Em cũng không thể yêu cầu các văn phòng đừng merger cell được vì họ có thể làm cùng 1 công việc trong 3 ~4 ngày , nếu ghi 3 ~ 4 lần cùng 1 nội dung thì cũng không hay. vậy có cách nào để sort được không ạ ?


View attachment 263051

Chạy thử sub abc
Mã:
Sub abc()
Dim rng As Range
Dim rw
Dim i, j, k

With Sheet1
    .Range("B3", .Range("B3").End(xlDown)).Copy .Range("T3")
    Application.CutCopyMode = False
    For i = 3 To 25
        .Range("T" & i) = .Range("T" & i) & Right(100 + i, 2)
    Next i
    Call Macro3
    For i = 3 To 25
        rw = Right(.Range("T" & i), 2) * 1
        .Range("A" & rw, "R" & rw).Copy .Range("V" & i)
        Application.CutCopyMode = False
    Next i
    
    .Range("V3:AM25").Copy .Range("A3")
    Application.CutCopyMode = False
    .Range("S1:AM25").Clear
End With
End Sub
Mã:
Sub Macro3()
    Range("T3").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("T3:T25") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("T3:T25")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 
Ông thớt có dùng code của tôi không mà im re vậy. Ít nhất cũng nói là nó không chạy được hay là ABC gì chứ!
Dạ có anh, em đây, bữa giờ bị mấy cái báo cáo khác dí quá không có thời gian lên đây. Em có thử code của anh rồi , hihihi , nó chạy tốt. có điều tại cái lịch làm việc đó em làm xong rồi, nên không hỏi tiếp nữa. Cái code của anh tiện lắm, em ghép cái code của anh vào với 1 đoạn code import file nữa là mọi thứ hoàn hảo,, nó gom hết 3 file về 1 chỗ rồi code của anh chạy 1 phát, nó sort như ý luôn. Sang 2 tuần nữa, lại có báo cáo lịch làm việc là có cơ hội ứng dụng đoạn code của anh rồi. Cảm ơn ah nhiều nha
Bài đã được tự động gộp:

Chạy thử sub abc
Mã:
Sub abc()
Dim rng As Range
Dim rw
Dim i, j, k

With Sheet1
    .Range("B3", .Range("B3").End(xlDown)).Copy .Range("T3")
    Application.CutCopyMode = False
    For i = 3 To 25
        .Range("T" & i) = .Range("T" & i) & Right(100 + i, 2)
    Next i
    Call Macro3
    For i = 3 To 25
        rw = Right(.Range("T" & i), 2) * 1
        .Range("A" & rw, "R" & rw).Copy .Range("V" & i)
        Application.CutCopyMode = False
    Next i
   
    .Range("V3:AM25").Copy .Range("A3")
    Application.CutCopyMode = False
    .Range("S1:AM25").Clear
End With
End Sub
Mã:
Sub Macro3()
    Range("T3").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("T3:T25") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("T3:T25")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Dạ, cảm ơn anh nha. Em vừa thử xong, code của anh chạy đúng như ý luôn.
Em cảm ơn nhiều
Bài đã được tự động gộp:

Nếu bạn có từng "profile" thớt sẽ không phải hỏi câu này.
Lắm lúc người hỏi sau một đống bài tới lui sẽ không còn nhớ câu hỏi bạn đầu của mình (có khi nó xoay chiều 180 độ), và cứ làm theo kiểu hỏi được thêm khúc nào, chắp thêm khúc nấy.
Bạn không thấy hỏi thêm gì nữa thì cứ tin là người ta đang chú trọng vào code khác.
Em rất cảm ơn các anh trên diễn đàn này. Nhờ sự hỗ trợ của các anh trên đây mà công việc của em nhẹ đi được rất nhiều do không cần phải làm thủ công nữa.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom