Я использую ДНК Excel для управления надстройкой Excel. Там я применяю числовой формат к ячейке, используя Range.NumberFormat = myformat;
. Я не знаю заранее строку myFormat, она определена в бэкенде.
В хороших случаях myFormat — это что-то вроде «0.00;(0.00)» или «# ##0,00\ _€;[Red]-# ##0,00\ _€», в других — что-то вроде «toto». В последнем случае в ячейке excel отображается ########## или что-то бессмысленное.
Итак, есть ли способ проверить, что строка myFormat является допустимым числовым форматом для Excel, прежде чем применять формат к ячейке?
Спасибо, Марио.
#######
просто означает, что ячейка недостаточно широка для отображения значения. Ваш пример форматирует возвращаемые значения для меня. - person Darren Bartrup-Cook   schedule 27.02.2017IsNumericFormat = IsNumeric(Target.Text)
вернет логическое значение на основе отображаемого значения в ячейке. Однако вам нужно будет поместить значение в ячейку и сначала применить форматирование, а такие числа, как 5,00%, вернут false, поскольку% не является числовым. Я также думал оIsNumericFormat = IsNumeric(Format$(Target.Value, Target.NumberFormat))
, но опять же для таких чисел, как -20, ячейка отображает- 20
, а Format$ отображает- 020 _€
, но это работает для определенных числовых форматов. Просто выбрасываю его как возможное решение, полное дыр. - person Darren Bartrup-Cook   schedule 28.02.2017