Based on the object type you are using and the code you have, you will need to add a reference parameter of type object like so:
Public Sub InitChart(ByRef Charts As Object)
...then when calling your Sub() (with your code) you would call it like this:
InitChart(Charts)
The other way to do this is to turn your Sub() into a function that takes the chart number parameter, but returns you a new object from the function directly like so:
Public Function InitChart(ByVal CurChartNo As Integer) As Object
'Check this object instantiation to make sure it is the way you are currently creating the object
Dim Charts As New Object
Charts(CurChartNo) = Server.CreateObject("ChartFX.WebServer")
Charts(CurChartNo).RGB2Dbk = &HC0FFFF&
Charts(CurChartNo).Chart3D = False
Charts(CurChartNo).MultipleColors = True
Charts(CurChartNo).Charttype = 1
Charts(CurChartNo).Border = True
Charts(CurChartNo).AllowResize = False
Charts(CurChartNo).AllowDrag = False
Charts(CurChartNo).SerLegBox = True
Charts(CurChartNo).Scrollable = True
Charts(CurChartNo).MarkerSize = 3
Return Charts
End Sub