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
Vba 在不同图纸的单个XY散点图上绘制多个曲线_Vba - Fatal编程技术网

Vba 在不同图纸的单个XY散点图上绘制多个曲线

Vba 在不同图纸的单个XY散点图上绘制多个曲线,vba,Vba,我有10张床单。每个图纸都有x值和y值,我想在一个xy散点图中绘制它们。我写了下面的代码。它适用于一张图纸,但不适用于所有图纸。此外,我不知道如何用特定的名称命名每个系列(它可以是对每个工作表中特定单元格的引用)。请注意,在每张纸上;x值和y值正好在同一单元格引用中开始和结束。系列名称单元格引用也是如此 Sub PlotPcVsSwAllSheets() Dim ch As Chart Dim Sw As Range Dim Pcres As Range Dim ws As Worksheet

我有10张床单。每个图纸都有x值和y值,我想在一个xy散点图中绘制它们。我写了下面的代码。它适用于一张图纸,但不适用于所有图纸。此外,我不知道如何用特定的名称命名每个系列(它可以是对每个工作表中特定单元格的引用)。请注意,在每张纸上;x值和y值正好在同一单元格引用中开始和结束。系列名称单元格引用也是如此

Sub PlotPcVsSwAllSheets()

Dim ch As Chart
Dim Sw As Range
Dim Pcres As Range
Dim ws As Worksheet
    
Set ch = ActiveSheet.Shapes.AddChart(xlXYScatter).Chart

For Each ws In Worksheets
    Set ws.Sw = ws.Range("C23", Range("C23").End(xlDown))
    Set ws.Pcres = ws.Range("AA23", Range("AA23").End(xlDown))
    With ch
        ch.SetSourceData Source:=Union(ws.Sw, ws.Pcres)
    End With
Next ws

End Sub

您需要逐个添加每个系列

子绘图PCVSSWallsheets()
模糊查斯图
变暗Sw As范围
调暗Pcres作为量程
将ws作为工作表,wb作为工作簿
设置wb=ThisWorkbook
设置ch=ActiveSheet.Shapes.AddChart(xlXYScatter.Chart)
'删除默认添加的任何系列
当ch.SeriesCollection.Count>0时执行此操作
第1章。删除
环
对于wb.工作表中的每个ws
设置Sw=ws.范围(“C23”,ws.范围(“C23”)。结束(xlDown))
将Pcres=Sw.EntireRow.Columns(“AA”)设置为“安全”
使用ch.SeriesCollection.NewSeries
.xvalue=Sw
.Values=Pcres
.Name=ws.Range(“A3”).Value,例如
以
下一个ws
端接头

谢谢,但它不起作用。它为sheet1绘图,但在下一张图纸上,它会给出错误消息(对象“\u工作表”的方法“Range”失败)。执行Set Sw=ws.Range(“C23”、ws.Range(“C23”).End(xlDown))行时出错。此外,在执行AddChart line之后,它会在上面的几次编辑中获取图表中的其他可用数据-这对我很有用。