2017-01-13 4 views
0

Привет, я искал решение отменить привязку моей диаграммы (на том же рабочем листе) от значений. Для этого я обычно выбираю данные, перехожу в формулы (F2), нажимаю F9 и вводимОтвязывание диаграммы Excel с помощью VBA

Моя серия будет преобразована в цифры. Я автоматизировал это как sendkeys, я знаю, что есть еще один вариант онлайн, но я хочу, чтобы это решение было как sendkeys. В основном выберите Data> F2> F9> Enter. Это работает отлично, если я делаю это вручную.

Мой Vba код выглядит следующим образом

ActiveChart.ChartArea.Select 
Application.SendKeys ("^{s}") 
ActiveChart.SeriesCollection(2).Select 
Application.SendKeys ("{f2}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("~"), True 
Application.SendKeys ("^{s}") 

ActiveChart.ChartArea.Select 
ActiveChart.SeriesCollection(1).Select 
Application.SendKeys ("{f2}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("~"), True 

Тем не менее, одна половина 2-го набора данных по-прежнему связаны между собой.

Спасибо за вашу помощь заранее - LGR

ответ

0

Вы можете сделать что-то вроде этого для преобразования Series.Values с ссылкой в Range, в фактические базовые значения.

Sub foo() 
Dim cht As Chart 
Dim srs As Series 

Set cht = ActiveChart 

For Each srs In cht.SeriesCollection 

    srs.Values = srs.Values 

Next 

End Sub 
+0

Спасибо. Я уже нашел несколько других «решений» в Интернете, все они с той же целью. На ваш взгляд, самое эффективное, простое и короткое решение, которое я нашел, блестяще прост. Кажется, так легко, что я не могу думать о том, как другие и я об этом не думал раньше. – LGR

+0

Единственное, что меня беспокоит, это то, что маркировка оси X удаляется, если я удаляю строку. Например. Процесс: 5, если удаленный превращается в "": 5. Возможно, у вас есть другое решение для меня, работа с диаграммами в VBA для меня нова. – LGR

+0

@LGR не совсем уверен, что может быть проблемой, но я бы предложил задать новый/отдельный вопрос таким образом, что больше людей сможет с этим справиться (и, конечно, если у меня будет время, я тоже попытаюсь проверить это). Попробуйте включить скриншоты с вашим объяснением! ура –

0

Старайтесь избегать отправки ключей. Используйте вместо этого:

ActiveWindow.Selection.ShapeRange(1).LinkFormat.BreakLink 

Источник: http://www.vbaexpress.com/forum/showthread.php?45829-How-to-break-links-to-excel-chart

Редактировать: Согласно комментарий от Дэвида Zemens, это будет работать на внедренные диаграммы, но не с первенствовать диаграммы объектов

+1

Это работает для встроенных диаграмм, но это не работает для обычного Excel ChartObject, который находится на рабочем листе. –

+0

@DavidZemens Добавить примечание к ответе – User632716

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