簡體   English   中英

基於日期值顯示/隱藏工作表的宏

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM