Macro để chèn trang tính - Mẹo Excel

Mục lục

Câu hỏi của tuần này là "Stuck in NJ":

Tôi đang tạo một sổ làm việc Excel có chứa các biểu đồ về số liệu bán hàng. Trang tính Excel đầu tiên tương ứng với lãnh thổ bán hàng đầu tiên trong công ty (ví dụ: FL01.) Tên tab của trang tính (cũng như ô A1) là số lãnh thổ bán hàng FL01. Dữ liệu điều khiển biểu đồ nằm ở bên phải (bên ngoài phạm vi có thể in được mà tôi đã đặt) và được điền từ một sổ làm việc excel khác bằng cách sử dụng hàm VLOOKUP với số lãnh thổ bán hàng FL01 trong ô A1 làm khóa tra cứu. Tôi cần thêm vào sổ làm việc 76 trang tính giống nhau (một trang tính cho mỗi lãnh thổ bán hàng) sao cho tên tab của mỗi trang tính và ô A1 bằng các số lãnh thổ bán hàng kế tiếp (ví dụ: FL01, FL02, LK01, LK02.) Làm cách nào để thực hiện điều đó trong cách tự động?

Điều này có thể dễ dàng thực hiện với macro VBA, nhưng hãy để tôi giới thiệu mẹo để thực hiện việc này theo cách thủ công. Khi bạn đã thiết lập trang tính với phạm vi định dạng và in, bạn có thể dễ dàng sao chép trang tính bằng cách nhấp chuột phải vào tab cho trang tính đó. Từ menu bật lên, chọn Di chuyển hoặc Sao chép. Từ hộp thoại Di chuyển hoặc Sao chép, chọn "(chuyển đến cuối)" và chọn hộp "Tạo bản sao", sau đó bấm OK. Bản sao trang tính của bạn có định dạng sẽ được thêm dưới dạng trang tính mới trong sổ làm việc của bạn. (Để tăng tốc quá trình này, hãy giữ phím Ctrl trong khi kéo tab trang tính sang bên phải.) Bạn thường muốn đổi tên trang tính. Bấm chuột phải vào tab mới, chọn đổi tên và nhập tên có ý nghĩa.

Để macro Excel hoạt động, nó cần một danh sách các lãnh thổ. Trước khi bạn viết macro, hãy chèn một trang tính mới vào cuốn sách này có tên là Dữ liệu. Trong Ô A1, nhập lãnh thổ bán hàng thứ 2 (FL02 trong ví dụ của bạn). Tiếp tục nhập tất cả các lãnh thổ bán hàng xuống cột A. Không để trống bất kỳ hàng nào.

Chèn một macro mới và sao chép mã này:

Public Sub CopyIt() Sheets("Data").Select ' Determine how many territories are on Data sheet FinalRow = Range("A65000").End(xlUp).Row ' Loop through each territory on the data sheet For x = 1 To FinalRow LastSheet = Sheets.Count Sheets("Data").Select ThisTerr = Range("A" & x).Value ' Make a copy of Fl01 and move to end Sheets("FL01").Copy After:=Sheets(LastSheet) ' rename the sheet and set A1 = to the territory name Sheets(LastSheet + 1).Name = ThisTerr Sheets(ThisTerr).Select Range("A1").Value = ThisTerr Next x End Sub

Macro sử dụng lệnh Sheets (). Copy, lệnh này thực hiện tương tự như nhấp vào Di chuyển hoặc Sao chép thủ công. Trước khi thực hiện mỗi bản sao, tôi tìm số trang tính bằng cách sử dụng thuộc tính Sheets.Count. Tôi biết nếu có 56 trang tính và tôi chèn một trang tính mới, nó sẽ được tham chiếu là Trang tính (57). Tôi thấy hơi khó đoán khi đoán cách Excel sẽ đặt tên trang tính mới, vì vậy tôi sử dụng số chỉ mục số để xác định trang tính. Sau khi tôi đổi tên trang tính mới bằng "Trang tính (LastSheet + 1) .Name = ThisTerr", sau đó tôi có thể chuyển trở lại phương pháp đề cập đến trang tính ưa thích của mình bằng cách sử dụng tên của nó.

Lưu ý rằng danh sách lãnh thổ không được chứa FL01 trong danh sách. Cố gắng đổi tên bản sao một bản sao của FL01 có cùng tên sẽ gây ra lỗi trong macro.

thú vị bài viết...