【问题标题】:Set sheet location, resize and reposition charts in Excel在 Excel 中设置工作表位置、调整大小和重新定位图表
【发布时间】:2015-07-13 08:35:23
【问题描述】:

我想在 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

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

【问题讨论】:

    标签: excel vbscript charts


    【解决方案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 中执行某项操作时,将操作记录为宏通常会有所帮助。

    【讨论】:

    • 谢谢。我找到了一种方法。 Set objChart = objSheet.ChartObjects.Add( 50, 40, 350, 250 ).Chart 这似乎与您的建议有所不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2020-02-01
    相关资源
    最近更新 更多