Trong bài viết này, chúng ta sẽ tạo macro để chia nhỏ dữ liệu theo số hàng cụ thể.

Chúng tôi có dữ liệu thô trong trang tính “RawData”. Chúng tôi muốn chia dữ liệu này thành nhiều trang tính.

ArrowRawData

ArrowMain

Trước khi chạy macro, chúng ta cần xác định số hàng được yêu cầu trong mỗi trang tính.

ArrowOutput

Giải thích mã

CntRows = Cint (Trang tính (“Chính”). TextBox1.Value)

Đoạn mã trên được sử dụng để đếm số lượng trang tính cần thiết trong một trang tính.

LastRow = .Range (“A” & .Rows.Count) .End (xlUp) .Row Đoạn mã trên được sử dụng để lấy số hàng của ô cuối cùng.

Sheets.Add after: = Sheets (Số lượng trang tính)

Đoạn mã trên được sử dụng để thêm một trang tính mới sau trang tính cuối cùng.

Range (“A” & n) .Resize (CntRows, LastColumn) .Copy Range (“A1”)

Đoạn mã trên được sử dụng để sao chép số hàng được chỉ định sang một trang tính mới.

Vui lòng theo dõi bên dưới để biết mã

Option Explicit

Sub SplitDataToMultipleSheets()

'Declaring variables

Dim LastRow As Long, n As Long, CntRows As Long

Dim LastColumn As Integer

'Getting count of number of rows required in one sheet

CntRows = CInt(Sheets("Main").TextBox1.Value)

'Disabling screen updates

Application.ScreenUpdating = False

With Sheets("RawData")



'Getting row number and column number of last cell

LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

LastColumn = .Range("A1").SpecialCells(xlCellTypeLastCell).Column



'Looping through data in the sheet

For n = 1 To LastRow Step CntRows



'Adding new worksheet

Sheets.Add after:=Sheets(Sheets.Count)

'Copying data to new worksheet

.Range("A" & n).Resize(CntRows, LastColumn).Copy Range("A1")

Next n



.Activate

End With

'Enabling screen updates

Application.ScreenUpdating = True

End Sub

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]