Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel 2007中通过Vbasic自动创建多个图表时更改图表的位置_Vba_Excel_Charts - Fatal编程技术网

在Excel 2007中通过Vbasic自动创建多个图表时更改图表的位置

在Excel 2007中通过Vbasic自动创建多个图表时更改图表的位置,vba,excel,charts,Vba,Excel,Charts,我正在为Excel电子表格中的每一行数据创建一个新图表。我让Vbasic正常工作,但我想更改为每行添加的图表在图纸上的位置 下面是我的代码,我需要做什么来自动更改图表在页面上的位置?理想情况下,我希望它位于每张纸的左上角 Sub DrawCharts() Dim Ws As Worksheet Dim NewWs As Worksheet Dim cht As Chart Dim LastRow As Long Dim CurrRow As Long Set Ws = ThisWorkbook

我正在为Excel电子表格中的每一行数据创建一个新图表。我让Vbasic正常工作,但我想更改为每行添加的图表在图纸上的位置

下面是我的代码,我需要做什么来自动更改图表在页面上的位置?理想情况下,我希望它位于每张纸的左上角

Sub DrawCharts()
Dim Ws As Worksheet
Dim NewWs As Worksheet
Dim cht As Chart
Dim LastRow As Long
Dim CurrRow As Long

Set Ws = ThisWorkbook.Worksheets("Sheet1")

LastRow = Ws.Range("A65536").End(xlUp).Row
For CurrRow = 2 To LastRow
    Set NewWs = ThisWorkbook.Worksheets.Add
    NewWs.Name = Ws.Range("A" & CurrRow).Value
    Set cht = ThisWorkbook.Charts.Add
    With cht
        .ChartType = xl3DColumnClustered
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Values = "=" & Ws.Name & "!R" & CurrRow & "C3:R" & CurrRow & "C8"
        .SeriesCollection(1).Name = "=" & Ws.Name & "!R" & CurrRow & "C2"
    .SeriesCollection(1).XValues = "Sheet1!R1C3:R1C8"
    .Axes(xlValue).MinimumScale = 0
        .Axes(xlValue).MaximumScale = 1
        .Axes(xlValue).MajorUnit = 0.2
        .SetElement (msoElementDataLabelShow)
        .SetElement (msoElementLegendNone)
        .Location Where:=xlLocationAsObject, Name:=NewWs.Name
    End With
Next CurrRow
End Sub
感谢您的帮助。

之后

.地点

放在这行:

.Left = 0
.Top = 0
你也可以试试

.PlotArea.Left = 0
.PlotArea.Top = 0
它可能会给出一个稍微不同的位置