Не удается добавить условное форматирование при сохранении в формате XlFileFormat.xlXMLSpreadsheet - PullRequest
0 голосов
/ 20 октября 2011

Я динамически создаю файл Excel.

Мне нужно сохранить файл как XlFileFormat.xlXMLSpreadsheet.

Однако условное форматирование не будет добавлено, когда я сохраню файл как XlFileFormat.xlXMLSpreadsheet.

Я открываю файл и проверяю диспетчер правил условного форматирования, и ничего не добавляется.

Я также не делаю никакой защиты файлов.

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 голосов
/ 20 октября 2011

Проблема не в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...