標題:
[發問]
錄製的程式碼,執行產生BUG
[打印本頁]
作者:
ziv976688
時間:
2019-12-6 04:07
標題:
錄製的程式碼,執行產生BUG
測試檔 : [attach]31511[/attach]
Sheet1的程式碼是依據Sheet2格式化的3個條件公式所錄製的,
不知為什麼Sheet1的程式碼執行後會產生BUG?
BB:BE欄的標示不正確(請詳見Sheet2! BB:BE的正確標示)。
請問︰Sheet1錄製的程式碼,有哪裡錯誤了?
請各位大大指正!謝謝!
作者:
ziv976688
時間:
2019-12-6 08:31
本帖最後由 ziv976688 於 2019-12-6 08:46 編輯
補充3個條件公式的邏輯 :
選取BB17:BX80
條件1 :
當BB欄的(ROW(16:79)/7)餘數=2的各列之
最小值
且
且<5
時,則將其同欄的下一個儲存格標示40號底色+紅色字體。
條件2 :
當BB欄的(ROW(16:79)/7)餘數=2的各列之
最小值
時,則將其同欄的下一個儲存格標示40號底色+綠色字體。
條件3 :
當BB欄的(ROW(16:79)/7)餘數=2的各列之
值<10
時,則將其同欄的下一個儲存格標示綠色字體。
格式往右複製到BX欄。
謝謝 !
作者:
ziv976688
時間:
2019-12-6 14:02
本帖最後由 ziv976688 於 2019-12-6 14:10 編輯
說明的筆誤修正 :
選取BB17:
BX
80
修正為
選取BB17:
BK
80
格式往右複製到
BX
欄
修正為
格式往右複製到
BK
欄
謝謝 !
===========================================
Sheet1錄製的程式碼如下 :
Sub Macro1()
'
' Macro1 Macro
' MC SYSTEM 在 2019/12/6 錄製的巨集
'
'
Range("BB17:BK80").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=(MIN(IF((MOD(ROW($16:$79),7)=2),BB$16:BB$79))=BB16)*(MOD(ROW(BB16),7)=2)*(BB16<5)"
Selection.FormatConditions(1).Font.ColorIndex = 3
Selection.FormatConditions(1).Interior.ColorIndex = 40
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=(MIN(IF((MOD(ROW($16:$79),7)=2),BB$16:BB$79))=BB16)*(MOD(ROW(BB16),7)=2)"
Selection.FormatConditions(2).Font.ColorIndex = 10
Selection.FormatConditions(2).Interior.ColorIndex = 40
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=(MOD(ROW(BB16),7)=2)*(BB16<10)"
Selection.FormatConditions(3).Font.ColorIndex = 10
End Sub
作者:
ziv976688
時間:
2019-12-7 05:49
本帖最後由 ziv976688 於 2019-12-7 06:02 編輯
測試檔的內容和操作說明 :
1_
Sheet1&Sheet2的BB17:BK80之3個格式化條件公式都相同。
2_
在Sheet1設立1個執行按鈕鍵。
3_
將Sheet1的3個格式化條件公式錄製巨集。
4_
Sheet2格式化條件公式的顏色標示,留作比對用。
問題 :
按Sheet1的執行按鈕鍵後,其BB :BE欄的標示不正確(即與Sheet2的留底顏色標示不同)。
請問 :
Sheet1錄製的巨集程式碼,哪裡有錯誤 ? 要如何修正 ?
謝謝 !
PS :
因為Sheet1如果是選取BB17:BK80後,點上方工具列的"格式",再點"設定格式化的條件",再點確定後,則Sheet1的顏色標示就完全正確(即與Sheet2的留底顏色標示完全相同),
所以認為3個格式化的條件公式,應該是沒有問題。
作者:
准提部林
時間:
2019-12-8 10:26
With Range("BB17:BK80")
.Select
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MMULT(1,MIN(OFFSET(BB$16,ROW($1:$10)*7-7,))/($BA17=""最小"")/(BB16<5))=BB16
"
.FormatConditions(1).Font.ColorIndex = 3
.FormatConditions(1).Interior.ColorIndex = 40
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MMULT(1,MIN(OFFSET(BB$16,ROW($1:$10)*7-7,))/($BA17=""最小""))=BB16"
.FormatConditions(2).Font.ColorIndex = 10
.FormatConditions(2).Interior.ColorIndex = 40
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=($BA17=""最小"")*(BB16<10)"
.FormatConditions(3).Font.ColorIndex = 10
End With
應該是陣列公式的問題, 必須手動再確定,
改成一般公式~~
========================
作者:
ziv976688
時間:
2019-12-8 16:52
本帖最後由 ziv976688 於 2019-12-8 16:53 編輯
回復
5#
准提部林
准提版主 : 您好!
因為原格式化的條件公式以"手動"操作時,顏色標示都沒有問題,只是以"按鈕"執行錄製的程式碼時,顏色標示才會有BUG,所以我沒有考慮到公式會是陣列
貴解題公式經"手動"和"按鈕"操作測試後,顏色標示完全正確。
謝謝您!感恩
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)