25/05/2018, 23:31

Đồng bộ nội dung trang tính trong Excel

Khi sử dụng bảng tính chứa nhiều hơn một trang, bạn có thể để ý thấy rằng Excel không hề có chức năng tự đồng bộ tất cả các trang tính. Nói cách khác, không có chức năng nào tự động sắp xếp tất cả các trang tính có cùng dải ô và cùng định dạng ô tính góc trên cùng bên trái. Dưới đây ta sẽ sử dụng ...

Khi sử dụng bảng tính chứa nhiều hơn một trang, bạn có thể để ý thấy rằng Excel không hề có chức năng tự đồng bộ tất cả các trang tính. Nói cách khác, không có chức năng nào tự động sắp xếp tất cả các trang tính có cùng dải ô và cùng định dạng ô tính góc trên cùng bên trái.

Dưới đây ta sẽ sử dụng VBA thông qua cách tạo một macro với tính năng mặc định trang tính đang hoạt động làm chuẩn và thay đổi nội dung các trang khác dựa trên trang mặc định đó, cụ thể là:

  • Định dạng dải ô giống hệt trang mặc định.
  • Định dạng ô tính góc trên bên trái giống hệt trang mặc định

Lưu ý: Phương pháp này không áp dụng được với các trang tính bị ẩn.

Hàm thủ tục con SynchSheets

Đây là cấu trúc của hàm thủ tục:

Sub SynchSheets()
'   Duplicates the active sheet's active cell upperleft cell
'   Across all worksheets
    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
    Dim UserSheet As Worksheet, sht As Worksheet
    Dim TopRow As Long, LeftCol As Integer
    Dim UserSel As String
    
    Application.ScreenUpdating = False

'   Remember the current sheet
    Set UserSheet = ActiveSheet
    
'   Store info from the active sheet
    TopRow = ActiveWindow.ScrollRow
    LeftCol = ActiveWindow.ScrollColumn
    UserSel = ActiveWindow.RangeSelection.Address
    
'   Loop through the worksheets
    For Each sht In ActiveWorkbook.Worksheets
        If sht.Visible Then 'skip hidden sheets
            sht.Activate
            Range(UserSel).Select
            ActiveWindow.ScrollRow = TopRow
            ActiveWindow.ScrollColumn = LeftCol
        End If
    Next sht
    
'   Restore the original position
    UserSheet.Activate
    Application.ScreenUpdating = True
End Sub

Cách dùng hàm thủ tục trên

Để khởi động hàm nói trên, hãy sao chép nó vào mô-đun khởi chạy VBA (bạn nên sử dụng Bảng Macro cá nhân). Sau đó khởi động bảng tính lên và thực hiện chạy hàm thủ tục SynchSheets. Kết quả là tất cả các trang tính sẽ có chung dải ô và định dạng ô tính góc trên bên trái tương đồng với trang tính mặc định.

0