2015-07-13 97 views
0

我想在Excel中创建3D饼图。现在,我有创建它并设置源数据的代码,除了我的问题之外,我希望在特定工作表上使用图表,并且要调整其大小并重新定位它。我尝试过从VBA示例到VBScript示例的网上找到的各种选项,但没有任何效果。我的VBScript代码如下:在Excel中设置图纸位置,调整图表大小和重新定位图表

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
objExcel.SheetsInNewWorkbook = 1 
objExcel.Workbooks.Add 
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1) 

objSheet.Cells(1, 1).Value = "Operating System" 
objSheet.Cells(2, 1).Value = "Windows Server 2003" 
objSheet.Cells(3, 1).Value = "Windows XP" 
objSheet.Cells(4, 1).Value = "Windows 2000" 
objSheet.Cells(5, 1).Value = "Windows NT 4.0" 
objSheet.Cells(6, 1).Value = "Other" 

objSheet.Cells(1, 2).Value = "Number of Computers" 
objSheet.Cells(2, 2).Value = 146 
objSheet.Cells(3, 2).Value = 487 
objSheet.Cells(4, 2).Value = 211 
objSheet.Cells(5, 2).Value = 41 
objSheet.Cells(6, 2).Value = 56 

Set objRange = objSheet.UsedRange 
objRange.Select 
Set colCharts = objExcel.Charts 
colCharts.Add() 
Set objChart = colCharts(1) 
objChart.Activate 
objChart.ChartType = 70 
objChart.Elevation = 40 
objChart.Rotation = 80 

我发现keywork objChart.Location 1但创造它自己的工作表的图表,它占据了整个页面。我试过0和2但都返回错误。我也尝试过一个表名,但是也返回一个错误。然后,一旦我将它放在我想要的工作表上,我想调整整个图表的大小并定位它。

对于设置我发现下面的大小和位置:

objExcel.ActiveChart.Width = 300 

,虽然产生错误。我发现上述各种类型的线但都无济于事。上述可能工作,但我怀疑,因为图表是在自己的工作表上,并以“全屏”模式显示它不能调整大小/重新定位。

回答

1

您需要将图表添加到工作表。更改此:

Set objRange = objSheet.UsedRange 
objRange.Select 
Set colCharts = objExcel.Charts colCharts.Add() Set objChart = colCharts(1) 
objChart.Activate

到这一点:你坚持如何做某事在Excel时

Set objRange = objSheet.UsedRange 
objRange.Select 
Set objChart = objSheet.Shapes.AddChart2(262, -4102) 
objChart.Activate

录制动作宏通常有助于。

+0

谢谢。我找到了一个办法。 'Set objChart = objSheet.ChartObjects.Add(50,40,350,250).Chart'这似乎是你所建议的变体。 – user3017424