当我运行宏来绘制图表时,我需要在工作表中的预定位置绘制图表。问题是图表以一种奇怪的方式自动绘制,我不喜欢那样。我想确保可以预定义运行宏时要绘制图表的确切位置。我在这里附加了2张图像,其中1张图像显示了当前的绘制方式,另一张显示了我希望如何绘制图表。任何帮助将不胜感激。
这是当前的显示方式,一个饼图与另一个饼图重叠,并且折线图也使宏按钮模糊
这是我使用的代码,从折线图开始,然后是饼图。我是VBA和编码的新手,所以请原谅代码结构。
$str ='mr (3_22) mrs (1_12) miss (2_4)';
$re ='';
if(preg_match_all('/(\([^\)]+\))/i', $str, $mt)){
$re = implode('', $mt[0]);
}
echo $re; // (3_22)(1_12)(2_4)
答案 0 :(得分:0)
您的代码可以通过多种方式使用一些帮助。为了回答您的问题,我将忽略所有这些,并修复一段代码。这是我要替换的东西:
' PieC Macro
Range("C10:D11").Select
ActiveSheet.Shapes.AddChart2(262, xl3DPie).Select
ActiveChart.SetSourceData Source:=Range("'Model Calculations'!$C$10:$D$11")
With ActiveChart
'chart name
.HasTitle = True
.ChartTitle.Characters.Text = "Continuous Review"
' .Name = "Continuous Chart"
End With
我将首先声明并分配一些变量,然后创建,填充和定位图表。
Dim WkSht As Worksheet
Set WkSht = Worksheets("Model Calculations")
WkSht.Activate
Dim rChartData As Range
Set rChartData = WkSht.Range("C10:D11")
Dim rChartCover As Range
Set rChartCover = WkSht.Range("F10:K18")
Dim NewChart As Chart
Set NewChart = WkSht.Shapes.AddChart2(262, xl3DPie).Chart
With NewChart
.SetSourceData rChartData
With .Parent
.Left = rChartCover.Left
.Top = rChartCover.Top
.Width = rChartCover.Width
.Height = rChartCover.Height
End With
End With
您可以替换为:
Set WkSht = Worksheets("Model Calculations")
WkSht.Activate
与此:
Set WkSht = ActiveSheet
使其更通用,如果您知道结果图表的位置和大小,则可以插入这些图表,而不用使用给定范围的位置和大小(例如我上面使用的rChartCover
)。