Tried below Visual basic code, but not able to translate the same code to perl Range("A1").Select Range(Selection, Selection.End(xlDown)).Select data = Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False) myRange = data & "," Range("C2").Select Range(Selection, Selection.End(xlDown)).Select GraphXSeries = Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False) Range("D2").Select Range(Selection, Selection.End(xlDown)).Select GraphValue = Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False) Range("C1").Select GraphName = Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False) With SampleGraph .ChartType = xlXYScatterSmoothNoMarkers .SetSourceData Source:=Sheets(WorksheetName).Range(myRange), _ PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:=WorksheetName ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).Name = Worksheets(WorksheetName).Range(GraphName) ActiveChart.SeriesCollection(2).XValues = _ Worksheets(WorksheetName).Range(GraphXSeries) ActiveChart.SeriesCollection(2).Values = _ Worksheets(WorksheetName).Range(GraphValue) End With