2011-07-21 8 views
1

実行可能ファイルによって作成されたExcelワークブックは、別々のワークシート上の1日のデータで作成されています。実行可能ファイルの 'シート1'には、その月の日がリストされています。私は 'シート1'の日付に基づいてワークシートを表示/非表示にするマクロを書きたいと思います。日付値に基づいてワークシートを表示/非表示するマクロ

インスタンスの場合、1月のデータに1,2,3,4,5,11,12日が表示されている場合、マクロはDay1、Day2、Day3、Day4、Day5の対応するワークシートのみを表示します。 Day6〜Day10を非表示にし、Day11とDay12を表示します。任意のポインタが評価されます。

ありがとうございます。

+0

あなたはこれまで何を持っていますか?マクロを作成するための良い出発点は、レコード1であり、達成したいアクションを実行することです。あなたが呼び出す必要のある機能について多くの情報を提供します – Eddy

答えて

1
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 

コードはシートが一日数は###であるデイ###を、命名され、そしてあなたはおそらくする必要があります、あなたの最初のシートに日が昇順であるという仮定のオフに動作します別の行を追加して、最初のシートを手動で再表示します。私は私とvbaを持っていないので、このコードには構文エラーがあるかもしれませんが、正しい方向に進むはずです。

関連する問題