2015-02-18 4 views
0

Я надеюсь добавить ярлыки пользовательских данных в штабелированную гистограмму в Excel 2010. Каждый бар будет иметь значение метки, выведенное из значения на листе, которое не обязательно равно высоте бара сам.Форматирование гибких информационных меток

Лист, который я делаю, является шаблоном и имеет выпадающие варианты для изменения единиц данных. Например: $ MM с 1 десятичной запятой, K с 2 десятичными точками, $ с 0 десятичными точками и т. Д. Я столкнулся с проблемой форматирования ярлыков в соответствии с выборами форматирования данных. Я пробовал два подхода:

  1. Форматирование самих этикеток данных с помощью VBA. Частичный код ниже $ K с одним десятичным:

    `With ActiveChart.SeriesCollection(x).Points(y)` 
    

    .DataLabel.Text.NumberFormat = "$#,##0.0,"

К сожалению, этикетки, кажется, не читать запятые и разделить на одну тысячу, так что я не могу с точностью отображения тысячи или миллионы. Значение 1000 в приведенном выше коде будет отображаться как $ 1,000.0 вместо желаемого $ 1.0.

  1. Отформатируйте значения на листе, а затем просто прочитайте их с помощью VBA. В основном, я использую условное форматирование, чтобы правильно отображать значения на листе, а затем читать их с .DataLabel.Text = Cells(r,c)

К сожалению, если данные правильно отформатирован, значения остаются неизменными и метки отображения, без пользовательского форматирования на всех ,

Есть ли разумный способ достижения моей цели? Я надеюсь, что есть способ либо (1) сделать подсчет запятых при изменении форматов меток данных или (2) изменить фактические значения данных в моем листе на основе выпадающего списка форматирования (вместо того, форматирование, которое оставляет значение неизменным).

Спасибо, Lance

ответ

0

Я думаю, что слова «условное форматирование» являются ваш вопрос здесь: У меня были проблемы с VBA чтения базового формата ячейки, когда он условно отформатирован (правда, мой вопрос был с цветом, а не с числовым форматом, но я ожидаю, что причины его работы не будут одинаковыми).

Если принять свой второй подход, то есть, опираясь на формате рабочего листа с помощью диаграммы «Linked к источнику» вариант, а затем на спусковом крючке, когда выпадающий параметр изменяется, вы можете использовать VBA для набора формат на рабочем листе вместо условного форматирования - тогда диаграмма будет выбирать любой формат, который вы используете.

0

Пожалуйста, попробуйте следующее:

?Format(1000,"$#,##0.0,") 
$1.000,0 
?Format(1000,"$#,##0,.0") 
$1,0 
?Format(1234,"$#,##0,.0") 
$1,2 
+0

Добро пожаловать в StackOverflow. Пожалуйста, найдите минутку, чтобы ознакомиться с инструкциями на сайте о ответе на вопросы. Проводка кода без объяснения причин, почему это помогает решить проблему и - в этом случае - как ее использовать, не рекомендуется. Ваш вклад будет иметь большую ценность, если вы объясните, как это помогает ответить на вопрос и как использовать этот фрагмент кода. Не все узнают, что вы показываете информацию из окна VBA Immediate ... –

Смежные вопросы