Как исправить «Метод« Добавить »объекта« ChartObjects »Ошибка» - PullRequest
0 голосов
/ 03 января 2019

Я пишу макрос для создания графика, в котором вы объединяете несколько файлов данных, выбираете, в каких столбцах вы хотите, чтобы значения 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...