Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Đôi khi để tính toán dễ dàng, chúng ta cần tách trang tính Excel thành nhiều trang tính dựa trên hàng. Trong bài viết này, chúng ta sẽ học cách làm điều đó bằng mã Microsoft Excel VBA với một ví dụ đẹp và giải thích.

Tệp thực hành

Tải xuống tệp thực hành sau và tập luyện.

Excel VBA để tách trang tính Excel thành nhiều trang tính dựa trên hàng

VBA (Visual Basic for Application) là một trong những ngôn ngữ lập trình phổ biến nhất cho Microsoft Excel trong tất cả. Để phát triển hàm do người dùng định nghĩa, chúng ta có thể sử dụng Excel VBA. Nó rất dễ học cũng như dễ áp dụng.

Giới thiệu trang tính phải được tách thành nhiều trang tính trong Excel

Giả sử chúng ta có tập dữ liệu (B4:C10) của nhân viên với giờ làm việc của họ trong Sheet1. Chúng ta sẽ tách trang tính này thành nhiều trang tính. Mỗi trang tính sẽ chứa hai hàng.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Bước 1: Mở cửa sổ VBA để tách trang tính Excel thành nhiều trang tính

  • Trước tiên, chọn trang tính từ thanh trang tính.
  • Tiếp theo right-click vào trang tính.
  • Nhấp vào View Code.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Bước 2: Nhập và chạy mã VBA

  • Một cửa sổ VBA Module mở ra ở đây. Chúng ta có thể mở nó bằng phím tắt ' Alt + F11'.
  • Bây giờ nhập mã bên dưới:
Sub SplitSheet() Dim Rng As Range Dim xRow As Range Dim SplitRow As Integer Dim xSheet As Worksheet On Error Resume Next xTitleId = "ExcelSplit" Set Rng = Application.Selection Set Rng = Application.InputBox("Range", xTitleId, Rng.Address, Type:=8) SplitRow = Application.InputBox("Row Number Split", xTitleId, 5, Type:=1) Set xSheet = Rng.Parent Set xRow = Rng.Rows(1) Application.ScreenUpdating = False For i = 1 To Rng.Rows.Count Step SplitRow resizeCount = SplitRow If (Rng.Rows.Count - xRow.Row + 1) < SplitRow Then resizeCount = Rng.Rows.Count - xRow.Row + 1 xRow.Resize(resizeCount).Copy Application.Worksheets.Add after:=Application.Worksheets(Application.Worksheets.Count) Application.ActiveSheet.Range("A1").PasteSpecial Set xRow = xRow.Offset(SplitRow) Next Application.CutCopyMode = False Application.ScreenUpdating = True End Sub
  • Sau đó nhấp vào tùy chọn Run hoặc chúng ta có thể đơn giản nhấn phím F5 để chạy mã.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Bước 3: Đặt tên và chạy Macro để tách trang tính thành nhiều trang tính dựa trên hàng

  • Một cửa sổ Macros xác nhận bật lên.
  • Sau đó, chọn tên trang tính và nhấp vào Run.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Bước 4: Chọn phạm vi dữ liệu

  • Chỉ định phạm vi dữ liệu trong hộp thoại ExcelSplit Range và chọn OK.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Bước 5: Chỉ định số hàng sẽ hiển thị trong mỗi trang tính

  • Lại ghi số hàng chúng ta muốn tách trong hộp thoại ExcelSplit Row Number Split và chọn OK. Ở đây chúng ta ghi '2'.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Đầu ra cuối cùng với nhiều trang tính Excel dựa trên hàng

  • Cuối cùng, chúng ta có thể thấy trang tính chính được tách thành nhiều trang tính. Mỗi trang tính chứa hai hàng.

Tự động tách trang tính Excel thành nhiều trang tính theo số hàng bằng VBA

Đọc thêm: Cách tách trang tính Excel thành nhiều trang tính dựa trên giá trị cột

Kết luận

Bằng cách sử dụng mã VBA Microsoft Excel này, chúng ta có thể tách trang tính Excel thành nhiều trang tính dựa trên hàng. Có tệp thực hành được thêm vào. Hãy tiến hành và thử nó. Đừng ngần ngại hỏi bất cứ điều gì hoặc đề xuất bất kỳ phương pháp mới nào.

Đọc thêm liên quan

  • Cách tách màn hình trong Excel (3 cách)
  • Tách trang tính trong Excel (6 cách hiệu quả)
  • Cách tách trang tính Excel thành nhiều tệp (3 phương pháp nhanh)
  • Tách trang tính thành các sổ làm việc riêng biệt trong Excel (4 phương pháp)
  • Cách tách sổ làm việc thành các tệp Excel riêng biệt với mã VBA