保存为XlFileFormat.xlXMLSpreadsheet格式时无法添加条件格式

时间:2011-10-20 03:47:25

标签: excel automation

我正在动态创建一个Excel文件。

我需要将文件保存为XlFileFormat.xlXMLSpreadsheet。

但是,当我将文件保存为XlFileFormat.xlXMLSpreadsheet时,将不会添加Condtional Formatting。

我打开文件&我检查了条件格式规则管理器,但没有添加任何内容。

我也没有做任何文件保护。

With .Range("A1")
    .FormatConditions.Delete()
    .FormatConditions.Add(CInt(XlFormatConditionType.xlCellValue), _
      CInt(XlFormatConditionOperator.xlEqual), _
      "=" & """OK""").Interior.Color = CInt(eColor.FromArgb_100_51_204_51)
    .FormatConditions.Add(CInt(XlFormatConditionType.xlCellValue), _
      CInt(XlFormatConditionOperator.xlNotEqual), _
      "=" & """OK""").Interior.Color = CInt(eColor.FromArgb_100_255_0_0)
End With

当我没有将其保存为XlFileFormat.xlXMLSpreadsheet格式时,条件格式设置正常。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题不是SaveAs xml,而是条件格式代码。

运行此代码,创建条件格式并使用xml文件保存。

Sub zx()
    With [A1]
        .FormatConditions.Delete
        .FormatConditions.Add(xlCellValue, xlEqual, "OK").Interior.Color = RGB(51, 204, 51)
        .FormatConditions.Add(xlCellValue, xlNotEqual, "OK").Interior.Color = RGB(255, 0, 0)
    End With

    ActiveWorkbook.SaveAs "C:\Users\Chris\Documents\Scratch\SOxx", xlXMLSpreadsheet
End Sub

我不确定eColor.FromArgb ...是什么,所以替换了RGB调用。

请注意xlXMLSpreadsheet不支持vba,因此如果代码位于活动工作簿中,则不会使用SaveAs文件保存。

在Excel 2010上测试