Ẩn các cột Không nằm trong Phạm vi Ngày (Microsoft Excel)
Jason có một bảng tính chứa một số cột, mỗi cột đại diện cho một tuần tài chính cho công ty của anh ấy. Các tuần tài chính này bắt đầu với cột G, với cột H là tuần tài chính thứ hai, cột I là tuần thứ ba, v.v. Jason muốn tạo một macro, khi chạy, sẽ xem xét ngày hôm nay, tính toán tuần tài chính dựa trên ngày đó, rồi ẩn bất kỳ cột nào trong tuần tài chính không nằm trong một phạm vi được chỉ định.
Với mục đích cung cấp câu trả lời, tôi sẽ giả định rằng phạm vi bạn muốn hiển thị sẽ bằng 13 tuần (một phần tư)
ngay trước tuần tài chính hiện tại. Với ý nghĩ này, có một số điều phải được thực hiện bởi macro. Đầu tiên, nó phải xác định xem nó hiện đang là tuần tài chính nào. Sau đó, nó phải ẩn tất cả các tuần không phải trong 13 tuần trước tuần tài chính hiện tại này và hiện tất cả những tuần đó.
Điều này tương đối dễ thực hiện, ngoại trừ việc tìm ra tuần tài chính hiện tại. Phương pháp xác định các tuần tài chính có thể rất khác nhau giữa các công ty. Tuy nhiên, vì đơn giản, tôi sẽ giả định rằng quyết định khá đơn giản: chia ngày trong năm cho bảy và xem chúng ta có gì.
Macro sau đây thực hiện cách tiếp cận được thảo luận cho đến nay.
Sub HideWeeks() Dim BeginYear As Date 'start of fiscal year date Dim FirstWeekCol As Integer 'first fiscal week column Dim FirstShowWkCol As Integer 'first column to show Dim CurrWkCol As Integer 'current week column Dim J As Integer BeginYear = Cells(1, 1).Value FirstWeekCol = 7 'fiscal weeks begin with Col 7 (G) 'Calculate Column of the current fiscal week CurrWkCol = ((Date - BeginYear) \ 7) + FirstWeekCol - 1 'Calculate column of the first week to show FirstShowWkCol = CurrWkCol - 14 If FirstShowWkCol < FirstWeekCol Then FirstShowWkCol = FirstWeekCol End If Application.ScreenUpdating = False 'Unhide all columns Columns("G:IV").Hidden = False 'Unhide all week Columns 'Hide week column before the rolling quarter For J = FirstWeekCol To FirstShowWkCol Columns(J).Hidden = True Next J 'Hide week column after current week For J = CurrWkCol + 1 To 256 Columns(J).Hidden = True Next J Application.ScreenUpdating = True End Sub
Lưu ý rằng có một giá trị phải được lấy từ trang tính trong macro này: ngày cuối cùng của năm trước. Giả sử rằng ô này nằm trong ô A1, và nó được lấy và đặt trong biến BeginYear. Giá trị này được sử dụng để xác định ngày của năm hiện tại.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (9550) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: