#excel #vba #excel-charts
#преуспеть #vba #excel-диаграммы
Вопрос:
Я пытаюсь установить размер диаграмм Excel с помощью VBA, и я часто это замечал.Карта мира.Ширина и .Карта мира.Свойства высоты устанавливают значения немного иначе, чем требуется. Например, приведенный ниже код:
Sub test_chart_area()
Dim CA_w As Double
Dim CA_h As Double
CA_w = 500
CA_h = 300
With ActiveChart
.ChartArea.Width = CA_w
Debug.Print (".ChartArea.Width: " amp; .ChartArea.Width)
.ChartArea.Height = CA_h
Debug.Print (".ChartArea.Height: " amp; .ChartArea.Height)
End With
End Sub
устанавливает для диаграммы значение «.ChartArea.Ширина: 496.902204724409 » и «.Диаграмма.Рост: 293.152125984252»
.PlotArea.Внутренняя ширина и.Площадь участка.С другой стороны, свойства InsideHeight, по-видимому, присваивают только целочисленные значения. Например, приведенный ниже код:
Sub test_plot_area_inside()
Dim PA_iw As Double
Dim PA_ih As Double
PA_iw = 200.411968503937
PA_ih = 100.642677165354
With ActiveChart
.PlotArea.InsideWidth = PA_iw
Debug.Print (".PlotArea.InsideWidth: " amp; .PlotArea.InsideWidth)
.PlotArea.InsideHeight = PA_ih
Debug.Print (".PlotArea.InsideHeight: " amp; .PlotArea.InsideHeight)
End With
End Sub
устанавливает для диаграммы значение «.PlotArea.Внутренняя ширина: 200 » и «.Площадь участка.Внутренняя высота: 100».
Различия между требуемыми и возвращаемыми значениями несущественны, но я хотел бы понять причину такого поведения.
Заранее большое спасибо.
Комментарии:
1. Я полагаю, что это как-то связано со значениями с плавающей запятой
2. Почему бы не использовать предустановленную диаграмму в шаблоне и просто выгрузить данные, а затем сохранить как? Это сэкономило бы немало работы с кодом и ускорило бы ее…
Ответ №1:
Установите свойства .Width
и .Height
ActiveChart.Parent
.
Комментарии:
1. Большое спасибо, все работает нормально. Кстати, я понял, что результат настройки ActiveChart. Область диаграммы. Ширина и ActiveChart. Область диаграммы. Высота зависит от уровня масштабирования листа (например, ActiveChart. Карта мира. Width = 500 дает разные результаты при запуске, когда лист, содержащий диаграмму, отображается с масштабированием 50% или 100%).