如何使用Python在Excel中创建多个FormatConditions

时间:2011-01-28 16:07:35

标签: python excel-vba vba excel

使用以下代码,理论上,它应该为F到AA列的范围内的每一个设置2种不同颜色的不同颜色的条件。不幸的是,一旦我运行这个Python脚本,excel只获取第一个条件的信息,其中第二个条件是excel但缺少颜色填充。有什么建议吗?

    formula1 = "=95" 
formula2 = "=100"
wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlBetween , formula1,formula2)             
#wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Font.Bold = True            
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Interior.Color = 8420607                       
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).StopIfTrue = False 
wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlGreaterEqual , formula2)             
#wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Font.Bold = True          
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Interior.Color = 10092543                       
wb.ActiveSheet.Columns("F:AA").FormatConditions(1).StopIfTrue = False 

1 个答案:

答案 0 :(得分:1)

发现我的错误我需要设置FormatConditions的索引:

            formula1 = "=95" 
            formula2 = "=100"
            wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlBetween , formula1,formula2)             
            #wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
            wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Font.Bold = True            
            wb.ActiveSheet.Columns("F:AA").FormatConditions(1).Interior.Color = 8420607                       
            wb.ActiveSheet.Columns("F:AA").FormatConditions(1).StopIfTrue = False 
            wb.ActiveSheet.Columns("F:AA").FormatConditions.Add(win32c.xlCellValue , win32c.xlGreaterEqual , formula2)             
            #wb.ActiveSheet.Columns("F:AA").FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()              
            wb.ActiveSheet.Columns("F:AA").FormatConditions(2).Font.Bold = True          
            wb.ActiveSheet.Columns("F:AA").FormatConditions(2).Interior.Color = 10092543                       
            wb.ActiveSheet.Columns("F:AA").FormatConditions(2).StopIfTrue = False