小弟目前的工作資料需要做格式化
但是因為太大量,所以巨集的部份已經沒辦法用錄製的了...
想請問版上神人,此狀況該如何使用?
狀況描述:
1.資料列位為1~5464(且會隨著資料量變化而持續增加)
2.資料欄位為M~X,此欄位永遠固定不會改變
3.列位從9開始,固定加四類推(即M9:X9、M13:X13、M17:X17、M21:X21....)至資料末端
4.這些資料要設條件化格式,如果大於等於0的話儲存格變成綠色
以上,麻煩各位大大了
Sub Macro1()
Dim i As Integer
Dim EndLine As Integer
'抓取M欄位的最後一筆資料所在列號
EndLine = [M65536].End(xlUp).Row
'清除目前工作表格式
ActiveSheet.Cells.Select
Selection.FormatConditions.Delete
'每4筆資料跳一次計數器
For i = 9 To EndLine Step 4
'設定格式
Range("M" & i & ":X" & i).Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="0"
Selection.FormatConditions(1).Interior.ColorIndex = 4
Next i
End Sub
學點程式的觀念吧...這個很簡單...
除了EndLine = [M65536].End(xlUp).Row這招要點經驗以外其他主要部份不到5分鐘就寫完了...
不過就算不會這招也可以直接用最後一筆列號去控制迴圈...

其實一開始就有想到用 For i 迴圈
但是程式碼畢業後就沒在使用...也忘了差不多
只好來求助了
============================================
Sub Macro1
Dim i As Integer
Dim EndLine As Integer
↑這是設定資料端的起點與輸入的區段
即沒資料時就會停止語法?
'抓取M欄位的最後一筆資料所在列號
EndLine = [M65536].End(xlUp).Row
↑(xlUp).Row代表的意義是?
Selection.FormatConditions.Add Type:=xlCellValue
↑加入顏色格式?
Operator:=xlGreater, Formula1:="0"
↑這段用意是?
Selection.FormatConditions(1).Interior.ColorIndex = 4
↑ColorIndex = 4的4是色碼?
aerwkimo wrote:
Sub Macro1
Dim i As Integer
Dim EndLine As Integer
↑這是設定資料端的起點與輸入的區段
即沒資料時就會停止語法?
這是宣告變數...
aerwkimo wrote:
'抓取M欄位的最後一筆資料所在列號
EndLine = [M65536].End(xlUp).Row
↑(xlUp).Row代表的意義是?
End(xlUp)簡單的說就是"End"鍵+"上"鍵...
會直接跳到資料的最後一行...
後面的.row就是傳回所在列號...
froce wrote:
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="0"
Selection.FormatConditions(1).Interior.ColorIndex = 4
這段就是在設定格式...我是用巨集錄出來的...
第一段是加一個條件...Type:=xlCellValue代表這條件是用儲存格的值做篩選...
Operator:=xlGreater則是"大於"...
Selection.FormatConditions(1).Interior.ColorIndex = 4
就是上面設定的格式如果符合...就變成綠色...
你錄巨集出來後可以好好研究一下...
很多時候錄出來的巨集會多很多不必要的步驟...
內文搜尋
X



























































































