Sắp xếp dữ liệu trong 1 bảng tính size lớn (1 người xem)

Liên hệ QC

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

Hiền Hapi

Thành viên mới
Tham gia
14/8/19
Bài viết
17
Được thích
4
E có 1 bảng tính có nhiều hàng và nhiều cột (e có file đính kèm). Cột A là số TT. E muốn sắp xếp lại bảng tính theo thứ tự từ nhỏ đến lớn. Nhưng bị báo lỗi "This operation requires the merged cells to be identically sized".
Ai biết cách sửa lỗi này thì giúp e với. E cám ơn cả nhà nhiều ạ.
 

File đính kèm

Lấy 1 trang tính trống & gán cho nó cái tên 'KQua'
Sau đó kích hoạt trang tính chứa dữ liệu & chạy macro sau:
PHP:
Sub SapXepTheoSoThuTu()
 Dim Rws As Long, J As Long, W As Integer, MaxSTT As Integer, Dm As Byte
 Dim Rng As Range, sRng As Range
 
 Rws = [A65500].End(xlUp).Row + 9
 ReDim Arr(1 To 3 * Rws, 1 To 35)
 Set Rng = [A4].Resize(Rws)
 MaxSTT = Application.WorksheetFunction.Max(Rng)
 For J = 1 To MaxSTT
    Set sRng = Rng.Find(J, , xlValues, xlWhole)
    If Not sRng Is Nothing Then
        W = W + 1
        For Dm = 1 To 35
            Arr(W, Dm) = sRng.Offset(, Dm - 1).Value
        Next Dm
        W = W + 1
        For Dm = 5 To 35
            Arr(W, Dm) = sRng.Offset(, Dm - 1).Value
        Next Dm
        W = W + 1
        For Dm = 8 To 35
            Arr(W, Dm) = sRng.Offset(, Dm - 1).Value
        Next Dm
    End If
 Next J
 If W Then Sheets("KQua").[A5].Resize(W, 35).Value = Arr()
End Sub

Phần việc tiếp sau ta sẽ bàn tiếp
 
Lấy 1 trang tính trống & gán cho nó cái tên 'KQua'
Sau đó kích hoạt trang tính chứa dữ liệu & chạy macro sau:
PHP:
Sub SapXepTheoSoThuTu()
Dim Rws As Long, J As Long, W As Integer, MaxSTT As Integer, Dm As Byte
Dim Rng As Range, sRng As Range

Rws = [A65500].End(xlUp).Row + 9
ReDim Arr(1 To 3 * Rws, 1 To 35)
Set Rng = [A4].Resize(Rws)
MaxSTT = Application.WorksheetFunction.Max(Rng)
For J = 1 To MaxSTT
    Set sRng = Rng.Find(J, , xlValues, xlWhole)
    If Not sRng Is Nothing Then
        W = W + 1
        For Dm = 1 To 35
            Arr(W, Dm) = sRng.Offset(, Dm - 1).Value
        Next Dm
        W = W + 1
        For Dm = 5 To 35
            Arr(W, Dm) = sRng.Offset(, Dm - 1).Value
        Next Dm
        W = W + 1
        For Dm = 8 To 35
            Arr(W, Dm) = sRng.Offset(, Dm - 1).Value
        Next Dm
    End If
Next J
If W Then Sheets("KQua").[A5].Resize(W, 35).Value = Arr()
End Sub

Phần việc tiếp sau ta sẽ bàn tiếp
@@ E HOK HIỂU A NÓI GÌ Ạ.
Bài đã được tự động gộp:

@@ E HOK HIỂU A NÓI GÌ Ạ.
 
Web KT

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

Back
Top Bottom