2011-07-01 22 views
0

私は、ユーザーフォームのエントリに基づいてExcelワークシートを生成しています。 1つのエントリは、プロジェクト期間中のレポート間隔です。報告間隔が3ヶ月で、Phase2の期間が10ヶ月、Phase3が3ヶ月であるとします。特定のセルをExcel VBAで1つのセルで塗りつぶす

私の列は位相間の一つのセルの距離で、このように構成されています

Phase1: Starting phase 
Phase2: Working phase 
Phase3: Closing phase 

Phase1 Phase2      Phase3 
|||||| ||||||||||||||||||||||||||| |||||| 

報告間隔は、このようなフェーズ2とフェーズ3での色のセルとしてマークする必要があります。

Phase1 Phase2      Phase3 
|||||| |||||||O|||||||||||O|||||||| ||O|||| 

このセルを色づけるコードです:

For x = 1 To (Implementationduration + Closingduration - 1)/3 
      Select Case x 
       Case Is < Implementationduration: 
        Call SetFontAndBackground(cells(Rowindex, Phase1CellLast() + Columncounter * 3), cells(Rowindex, Phase1CellLast() + Columncounter * 3), False, False, "", 10, False, "b", "lcyan", False) 
        Columncounter = Columncounter + 4 
       Case Is > Implementationduration: 
        Call SetFontAndBackground(cells(Rowindex, Phase1CellLast() + Columncounter * 3 + 1), cells(Rowindex, Phase1CellLast() + Columncounter * 3 + 1), False, False, "", 10, False, "b", "lcyan", False) 
        Columncounter = Columncounter + 4 
      End Select 
Next x 

問題は、フェーズ3の穿孔細胞は正しく配置されていません。彼らは1つの細胞から離れています。私はセルを書式設定するためのサブルーチンを使用して色分けします。私は自分のコードで間違いを見つけることができません。

答えて

1

問題が見つかりました。 My Select caseステートメントが正しくありません。それは:

For x = 1 To (Phase2duration + Phase3duration - 1)/3 
      Phase2range = Phase1CellLast() + Columncounter * 3 
      Select Case Phase2range 

       Case Is < Phase2CellLast(): 
        Call SetFontAndBackground(cells(Rowindex, Phase1CellLast() + Columncounter * 3), cells(Rowindex, Phase1CellLast() + Columncounter * 3), False, False, "", 10, False, "b", "lcyan", False) 
        Columncounter = Columncounter + 4 
       Case Is > Phase2CellLast(): 
        Call SetFontAndBackground(cells(Rowindex, Phase1CellLast() + Columncounter * 3 + 1), cells(Rowindex, Phase1CellLast() + Columncounter * 3 + 1), False, False, "", 10, False, "b", "lcyan", False) 
        Columncounter = Columncounter + 4 
      End Select 
Next x 
です。