我正在尝试使用带有 VBA 的平滑线来编写散点图。
我正在尝试从工作表中取出数据,并使用 VBA 在同一工作簿不同的工作表中创建一个带有线条且没有标记的散点图。
这是我的工作表的部分快照
A 列中低于 247 和 263 到 455 之间的值将在 B 列中具有相应的 -1.75。
x 值在 A1:A401
范围内
y 值在 B1:B401
范围内
我还想给我的图表加上标题,并标记 X 和 Y 轴。我无法弄清楚如何让 y 值与 x 值一起绘制,而不是在图表上制作两条单独的线。
这是我需要的图表
这是我使用的代码
Set xData = ThisWorkbook.Worksheets(2).Range("A1:A" & LastRow_this)
Set yData = ThisWorkbook.Worksheets(2).Range("B1:B" & LastRow_this)
Set GraphRange = Union(xData, yData)
'Create a chart
Set cht = ThisWorkbook.Worksheets(1).Shapes.AddChart2
'Give chart some data
cht.Chart.SetSourceData Source:=GraphRange
'Determine the chart type
cht.Chart.ChartType = xlXYScatterLines
这就是它在 Excel 中给我的。
我怎样才能得到想要的结果?
另外,如果范围是动态的,我该怎么办?
最佳答案
你可以试试这样的...
Sub CreateChart()
Dim wsData As Worksheet, wsChart As Worksheet
Dim LastRow As Long
Dim xData As Range, yData As Range, GraphRange As Range
Dim cht As Shape
Application.ScreenUpdating = False
Set wsChart = Sheets(1)
Set wsData = Sheets(2)
LastRow = wsData.Cells(Rows.Count, 1).End(xlUp).Row
Set xData = ThisWorkbook.Worksheets(2).Range("A1:A" & LastRow)
Set yData = ThisWorkbook.Worksheets(2).Range("B1:B" & LastRow)
Set GraphRange = Union(xData, yData)
'Create a chart
Set cht = ThisWorkbook.Worksheets(1).Shapes.AddChart2(, xlXYScatterLinesNoMarkers)
'Give chart some data
cht.Chart.SetSourceData Source:=GraphRange
cht.Chart.FullSeriesCollection(1).Format.Line.Weight = 5
Application.ScreenUpdating = True
End Sub
关于vba - 在 VBA 中使用平滑线编写散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44361927/