Я пишу макрос для создания графика, в котором вы объединяете несколько файлов данных, выбираете, в каких столбцах вы хотите, чтобы значения x и y были в первом наборе, а затем он будет перебирать все остальные в зависимости от длиныПервый сет.Однако я получаю эту ошибку, которая говорит мне, что метод добавления объектов chartobjects не удался.Я не понимаю, потому что эта ошибка возникает только на определенных файлах, но не других.Мой код будет работать с некоторыми файлами, но не с другими.
Workbooks.Add
ActiveSheet.Name = "Test Results"
'Load CSV file
Cells.Select
Selection.Delete Shift:=xlUp
Selection.EntireColumn.Hidden = False
Selection.NumberFormat = "General"
Dim ws As Worksheet, strFile As Variant, x As Integer, y As Integer,
NumberOfFile As Integer, i As Integer, j As Integer
Dim LabelColumn As Integer, StartLine As Integer, WholeColumns As Integer,
LableColumnLetter As String, MaxColumn As String
Dim ExtraRows As Integer
'Variables
NumberOfFile = InputBox("How many files would you like to combine?")
Set ws = ActiveWorkbook.Sheets("Test Results") 'set to current worksheet
name
strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv",
MultiSelect:=True, Title:="Please select text file...")
For i = 0 To NumberOfFile - 1
With ws.QueryTables.Add(Connection:="TEXT;" & strFile(i + 1),
Destination:=ws.Cells(1, 1 + WholeColumns * i))
.PreserveFormatting = True
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
Next
LR = ActiveSheet.UsedRange.Rows.Count
StartLine = InputBox("Which row do the results start in?" & Chr(10)
& "i.e. The first row with numerical values.")
LastColumn = InputBox("What is the last column in the first set of data?"
& Chr(10) & "Note: Please input the column letters as numbers." & Chr(10)
& "i.e. a = 1 and c = 3.")
LastColumnL = InputBox("What is the last column in the first set of data?"
& Chr(10) & "Note: Please input the column as a letter rather than a
number.")
XColumn = InputBox("Which column contains your x values for your first set
of data?" & Chr(10) & "Note: This is case sensitive please use lowercase
letters.")
XColumn = Range(XColumn & 1).Column
YColumn = InputBox("Which column contains your y values for your first set
of data?" & Chr(10) & "Note: This is case sensitive please use lowercase
letters.")
YColumn = Range(YColumn & 1).Column
'Creating First Graph
Dim co As ChartObject
Dim ct As Chart
Dim sc1 As SeriesCollection
Dim ser1 As Series
'This is where the error occurs
Set co = ActiveWorkbook.Sheets("Test Results").ChartObjects.Add(Range
("B2").Left, Range("B2").Top, 400, 250)
co.Name = "Specimen 1"
Set ct = co.Chart
With ct
.HasLegend = True
.HasTitle = True
.ChartTitle.Text = "Specimen 1"
Set sc1 = .SeriesCollection
Set ser1 = sc1.NewSeries
With ser1
.Name = "Specimen " & Counter
.XValues = Range(Cells(StartLine, XColumn), Cells(LR, XColumn))
.Values = Range(Cells(StartLine, YColumn), Cells(LR, YColumn))
.ChartType = xlXYScatter
End With
End With
ActiveSheet.ChartObjects("Specimen 1").Activate
With ActiveChart
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.SetElement (msoElementPrimaryValueGridLinesMinorMajor)
.SetElement (msoElementPrimaryCategoryGridLinesMinorMajor)
End With