[英]Macro to show/hide a worksheet based on date value
我有一個由可執行文件創建的 excel 工作簿,其中包含單獨工作表上每月幾天的數據。 可執行文件的“表 1”也列出了月份中的日期。 我想編寫一個宏,它將根據“表 1”中的日期顯示/隱藏工作表。
例如,如果 Jan 月份的數據顯示了第 1、2、3、4、5、11、12 天,那么宏應該只顯示 Day1、Day2、Day3、Day4、Day5 的相應工作表並隱藏 Day6 到Day10 並顯示 Day11 和 Day12。 任何指針表示贊賞。
謝謝你。
public sub setSheetVisiblity()
'Load the data from sheet 1 into a collection
'I'm making the assumption that you just have days listed horizontally from
'1A to 1*
Dim currentColumn as Integer
Dim activeDayCollection as Collection
currentColumn = 1
Set activeDayCollection = new Collection
While Cells(currentColumn, 1).Value <> ""
activeDayCollection.add Cells(currentColumn, 1).Value
currentColumn = currentColumn + 1
Wend
'Make every sheet invisible/visible
For each currentWorksheet as Worksheet in Worksheets
If currentWorksheet.Name == "Day" + activeDayCollection.Item 1 Then
currentWorksheet.Visible = true
activeDayCollection.Remove 1
Else
currentWorksheet.Visible = false
End If
Next currentWorksheet
end sub
該代碼假設您的第一張工作表中的日期按遞增順序排列,工作表名為 Day###,其中 ### 是日期編號,您可能需要添加另一行來手動取消隱藏您的第一張。 我沒有 vba ,所以這段代碼可能有一些語法錯誤,但它應該讓你朝着正確的方向前進。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.