在Excel中设置工作表位置,调整大小和重新定位图表

时间:2015-07-13 08:35:23

标签: excel vbscript charts

我想在Excel中创建一个3D饼图。现在,我有创建它和设置源数据的代码,但我的问题是我想要在特定工作表上的图表,我想调整它并重新定位它。我已经尝试了从VBA示例到VBScript示例在网上找到的各种选项,但没有任何作用。我的VBScript代码如下:

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

我找到了关键字objChart.Location 1,但是它在自己的工作表上创建了图表,它占用了整个工作表。我尝试过0和2,但都返回错误。我也尝试了一个工作表名称,但也返回了一个错误。然后,一旦我把它放在我想要的纸张上,我想调整整个图表的大小并定位它。

通过设置大小和位置,我发现了以下内容:

objExcel.ActiveChart.Width = 300

但是会产生错误。我找到了上面这种线的各种类型,但都无济于事。以上可能会有效,但我怀疑因为图表在自己的工作表上并且以“全屏”模式显示,所以无法调整大小/重新定位。

1 个答案:

答案 0 :(得分:1)

您需要将图表添加到工作表中。改变这个:

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

进入这个:

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

将动作录制为宏通常会在您遇到如何在Excel中执行某些操作时发挥作用。