Excel 向散点图添加数据,每个散点图都有自己的x轴范围
在添加为系列设置x轴范围的线之前,可以选择并打印任何文件组合。如果在下一组要打印的文件中选择了一个已经在打印中的文件,而不是新组中的第一个文件,则在结尾处使用该行“****”,则会发生错误。如果该行被注释,问题就会消失。如果每个系列都没有自己的x轴值,一些数据就无法正确绘制,因此也有一个示例csv文件。正在打印的文件是170kB的csv文件。可以提供工作表和文件Excel 向散点图添加数据,每个散点图都有自己的x轴范围,excel,charts,unique-constraint,vba,Excel,Charts,Unique Constraint,Vba,在添加为系列设置x轴范围的线之前,可以选择并打印任何文件组合。如果在下一组要打印的文件中选择了一个已经在打印中的文件,而不是新组中的第一个文件,则在结尾处使用该行“****”,则会发生错误。如果该行被注释,问题就会消失。如果每个系列都没有自己的x轴值,一些数据就无法正确绘制,因此也有一个示例csv文件。正在打印的文件是170kB的csv文件。可以提供工作表和文件 Sub GetDataAndDisplayChart() Dim vFile, vFiles Dim iFirst As In
Sub GetDataAndDisplayChart()
Dim vFile, vFiles
Dim iFirst As Integer
Dim lRow As Long
Dim rXValues As Range
Dim rYValues As Range
Dim iSer As Integer
Dim WkShName As String
Dim StartWkShCnt As Integer
StartWkShCnt = Worksheets.Count
' get a set of CSV files to chart
vFiles = Application.GetOpenFilename("csv files (*.csv), *.csv", , "Select files to chart", , True)
If TypeName(vFiles) = "Boolean" Then Exit Sub
Application.ScreenUpdating = False
iFirst = ThisWorkbook.Sheets.Count + 1
' import each selected CSV file to a new sheet in this workbook
For Each vFile In vFiles
Workbooks.OpenText vFile, xlWindows, DataType:=xlDelimited, comma:=True
' move the sheet into this workbook
ActiveSheet.Move after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next
Worksheets(iFirst).Select
Application.ScreenUpdating = True
' confirm the range to plot
Set rXValues = Range("$A$3:$A$10002")
Set rYValues = Range("$B$3:$B$10002")
Worksheets("Chart").Select
With Worksheets("Chart").ChartObjects(1).Chart
' add the first set of data to the existing chart (can have problems if you delete the old data first)
.SeriesCollection.Add Union(rXValues, rYValues), serieslabels:=True, categorylabels:=True, Replace:=True
.SeriesCollection(.SeriesCollection.Count).Name = Worksheets(iFirst).Range("A1")
' delete the old curves that were already on the chart
For iSer = .SeriesCollection.Count - 1 To 1 Step -1
.SeriesCollection(iSer).Delete
Next
' add the new data from the addtional files
For iSer = iFirst + 1 To Worksheets.Count
.SeriesCollection.Add Worksheets(iSer).Range(rYValues.Address)
WkShName = Worksheets(iSer).Name
.SeriesCollection(iSer - StartWkShCnt).XValues = "= " & WkShName & "!" & rXValues.Address '****
.SeriesCollection(.SeriesCollection.Count).Name = Worksheets(iSer).Range("A1")
Next
End With
' delete the older worksheets that were already here
Application.DisplayAlerts = False
For iSer = iFirst - 1 To 1 Step -1
If Worksheets(iSer).Name <> "Chart" Then Worksheets(iSer).Delete
Next
End Sub