2015-06-30 4 views
-1

У меня есть диаграмма, которую я хочу переставить. Диаграмма называется диаграммой 1.Set Range в VBA с использованием именованного диапазона

BalanceCFWD является названным диапазоном («A63») на листе распространения. Ячейки, указанные выше, будут удалены, поскольку я создаю отчет. Когда я удаляю ячейки, диаграммы не перемещаются вместе с ячейками, поэтому я пытаюсь написать этот код. Это для других пользователей.

Если я пройду через код, я смогу использовать .Top = chart1top.Top, и это будет правильно позиционироваться. Моя проблема заключается в том, что это работает только при выполнении кода. Если я отпущу его без точек останова, диаграмма кода становится шире и вне диапазона печати, поэтому я пытаюсь определить ширину и высоту.

Линия ChartWidth Я не могу писать без скомпилированного «Ожидаемого списка» или).

Существует больше кода, который следует за настройкой меток данных и других диаграмм.

Есть ли более простой подход?

Dim chart1top As Range 
Dim chart1Left As Range 
Dim chart1Width As Range 
Dim chart1HeightStart As Range 
Dim chart1HeightEnd As Range 

     With Sheets("Overall Summary") 
     Set chart1top = .Range("BalanceCFWD").Offset(1, 0) 
     Set chart1Left = .Range("BalanceCFWD").Offset(1, 0) 'same as the range above 
     Set chart1Width = .Range(("BalanceCFWD").Offset(1, 0) & ":" & ("BalanceCFWD").Offset(1, 5) 
     Set chart1HeightEnd = .Range("BalanceCFWD").Offset(27, 5) 
     End With 

With ActiveChart.Parent 
    .Top = chart1top.Top 
    .Left = chart1Left.Left 
    .Height = chart1HeightStart.Height 
    .Width = chart1Width.Width 
End With 

ответ

2

Если вы удаляете строки в Excel, но график не движется вокруг, это звучит для меня, как вам просто нужно изменить телеги свойства.

Это настройки по умолчанию: enter image description here

Примечание под Object positioning, что Move and size with cells выбран. Я бы рискнул сказать, что у вас есть одна из двух других переключателей.

Вы можете вручную изменить это на одном графике, или если это, кажется, постоянный вопрос, вы можете записать макрос, чтобы дать вам точные свойства, необходимые для установки, затем установите Move and size в коде до к вашей строке код удаления, и он должен двигаться так, как ожидалось.

+0

FreeMan. Я уже определил эти параметры. Я снова запустил отчет, и я заблокировал следующий код. Это не позиционирование, как я ожидал. Тайна, поскольку только .top и .left - единственные строки, которые мне удалось получить. – Karl