我正在研究一個宏,它提供了我們生產的產品的4個不同生產階段的可視化表示。電子表格設置爲線性日曆,顯示一年中的所有365天,並將其分組到日曆周。每個生產階段都有與之相關的不同顏色。 4)組裝:1天(黃色)2)初始分析:1天(紫色)3)深入分析:7天(綠色)4)運輸:1天(紅色)宏在調度中沒有正確識別約束
否工作在週末或節假日進行。星期六和星期日由黑色的單元格表示,節假日由橙色單元格表示,並具有十字形格局。宏設計爲通過跳過這些假期,如果再聲明如下:
Dim i As Integer
i = Analysis days
for i = 1 to 7
ActiveCell.Select
If Selection.Interior.Pattern = x1CrissCross And Selection.Interior.Color = orange Then
ActiveCell.Offset(0, 1).Select
Else: ActiveCell.Select
End If
If Selection.Interior.Color = black Then
ActiveCell.Offset(0, 2).Select
Else: ActiveCell.Select
End If
的如果Then語句,它告訴宏跳過週六和週日屢試不爽。但是,讓宏觀跳過節假日的聲明只是部分時間,如果假期持續時間超過幾天(聖誕節假期持續九天),宏將插入整個節假日穿插的生產工作日。我發現,將上述語句直接複製並粘貼到彼此之下好幾次似乎能夠快速解決問題。但我相信必須有一個更有效的方式來做到這一點。有沒有人知道我可以解決這個問題,而不必複製和粘貼多行代碼的方法?
在此先感謝!
這是非常雄心勃勃的^ _ ^; – findwindow
手工着色很乏味,但這可能比宏觀所需的邏輯少得多? – findwindow
啊,我***高度***建議你通讀[如何避免'.Select'](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel -vba-macros),它將爲您節省很多麻煩,並且將幫助您瞭解VBA如何工作/認爲。 – BruceWayne