У меня была такая же проблема, и я решил ее, используя следующий числовой формат
[=0]"";0.0%
Первая часть:
[=0]""
означает, что: если значение равно нулю, оно должно отображать пустую строку
Вторая часть:
0.0%
В данном конкретном случае означает, что все остальные значения должны отображаться в процентах с одним десятичным знаком. В качестве второй части можно использовать любой числовой формат.
[=0];General (Standard in some localized versions of Excel)
можно использовать для использования формата по умолчанию.
При использовании VBA это будет:
Dim area as range
'The data area for the chart'
set area = Sheet1.range("A1:B3")
area.NumberFormat = "[=0];General"