Thanks for the explanation Alan. I saw your reply after I had posted my
response to Tom asking him to elaborate but you have already done so
here.
To answer your question, I need to do this because it is part of a
larger fairly complex (for me!) macro where data is picked up on the
fly, manipulated by having various calculations performed upon it
depending on certain factors and then plotted in a chart.
Once the calculations have been performed on Range("Nums"), which is not
a fixed range, I get varData and this needs to be plotted on a
spreadsheet so that the chart can link to the range. I tried plotting
varData directly and this works nicely until I get a situation where the
varData string reaches 1000 characters at which point the macro fails.
I was told that Excel charts cannot handle data strings of more than
1000 chars unless they are presented in a range. So I attempting to
give the charts a range instead of feeding the data directly to their
data series in the form of a string.
Thanks very much for your help.
madge
In article ,
says...
varData is ReDimmed as a 2-d array, so varData(i+1) throws an error.
When that is changed to varData(i+1,1), the code throws an error at
varData(i+1,1) when i=the number of elements in Nums.
I think the following code does what Tom Ogilvy intended:
Dim varData() As Double
ReDim varData(1 To Range("Nums").Count, 1 To 1)
i = 1
For Each c In Range("Nums")
varData(i, 1) = c.Value
Debug.Print i, (varData(i, 1))
i = i + 1
Next
Range("D1").Resize(i - 1, 1).Value = varData '<--I used D1 'cause
I 'have something else in A1
But that raises the fundamental problem that all it does is create
another range that is identical to Nums; what's the point? I.e., if the
OP already has Nums, she already has the output she said she's seeking!??
Alan Beban
Tom Ogilvy wrote:
Assume Nums is a single column or single row
Dim varData() as double
Redim VarData(1 to Range("Nums").count, 1 to 1)
i = 0
For each c in Range("nums")
i = i + 1
varData (i+1) = c.Value
Next
Range("A1").Resize(i,1).Value = varData