У меня возникли проблемы с изменением размера изображений в VBA. Я перепробовал кучу методов и вот код, который я использую:Изменение размеров участков VBA
Sub Macro17()
'
' Macro17 Macro
'
'
Call Macro1
Call Macro2
End Sub
Sub Macro1()
Sheets("Data").Select
Range("A77:N79").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range("A58:N58,A77:N79")
With ActiveChart
'chart name
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = " Plot 1"
'X axis name
'.Axes(xlCategory, xlPrimary).HasTitle = True
'.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X-Axis"
'y-axis name
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y - label"
End With
ActiveChart.Parent.Cut
Sheets("Plots").Select
ActiveSheet.Paste Destination:=Worksheets("Plots").Range("B2:B5")
With ActiveChart.Parent
.Height = 369
.Width = 520
End With
End Sub
Sub Macro2()
Sheets("Data").Select
Range("A83:N85").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range("A58:N58,A83:N85")
With ActiveChart
'chart name
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = " Plot Two"
'X axis name
'.Axes(xlCategory, xlPrimary).HasTitle = True
'.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X-Axis"
'y-axis name
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y - label"
End With
ActiveChart.Parent.Cut
Sheets("Plots").Select
ActiveSheet.Paste Destination:=Worksheets("Plots").Range("B30:B35")
With ActiveChart.Parent
.Height = 369
.Width = 520
End With
ActiveChart.Axes(xlCategory).TickLabelPosition = xlTickLabelPositionLow
End Sub
Поэтому я использую Macro17, назвать как Macro1 и Macro2, а затем построить соответствующие данные, мой вопрос заключается в том, что, когда я называю Macro17, только первый сюжет сделан больше. Когда я запускаю оба макроса с помощью отладчика, использующего F8 (в окнах), у меня нет проблем, а код работает как expeceted, но это чрезвычайно эффективно. Вероятно, это связано с тем, как используется ActiveChart.Parent
. Спасибо за вашу помощь, это очень ценится.
При быстром просмотре он может иметь какое-то отношение к использованию вами '.Select'. Я настоятельно рекомендую прочитать [как избежать использования '.Select'] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros), который может облегчить некоторые проблемы в VBA. – BruceWayne