View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Using Transpose from within VBA with 256 array

I don't think it's a problem with application.transpose.

This worked fine for me (from within excel):

Dim arrData As Variant
Dim i As Long
Dim j As Long
Dim oXlBoek As Workbook

ReDim arrData(0 To 1, 0 To 256)

For i = 1 To 257
j = i - 1
arrData(0, j) = j
arrData(1, j) = j
Next i

Set oXlBoek = Workbooks.Add
arrData = Application.Transpose(arrData)
j = UBound(arrData, 2)
oXlBoek.Sheets(1).Cells(1, 1).Resize(2, j).Value = arrData

=======
But it didn't put the values in A1:IV2.

Was that line just for testing in the sample code--'cause you didn't need to
transpose the data.

Renate wrote:

Hi all,

I'm trying to automate Excel from within Word. In my code I have a two
dimensional array with over 300 elements. The Transpose command doesn't seem
to work in this situation.
It works perfectly for arrays with up to 256 elements but I can't get it to
work for my code.

I made an example to show where I am talking about, this code doesn't put
anything in the Excel sheet.

-----------------------------------------------------------------------------------
Dim arrData() As String
Dim i As Long
Dim j As Long
Dim oXlApp As Excel.Application
Dim oXlBoek As Excel.Workbook

ReDim arrData(1, 257)

For i = 1 To 257

j = i - 1
arrData(0, j) = j
arrData(1, j) = j

Next i

On Error Resume Next
Set oXlApp = GetObject(Class:="Excel.Application")
If Err.Number < 0 Then
Err.Clear
Set oXlApp = CreateObject(Class:="Excel.Application")
End If

oXlApp.Visible = True
Set oXlBoek = oXlApp.Workbooks.Add
arrData = oXlApp.Application.Transpose(arrData)
j = UBound(arrData, 2)
oXlBoek.Sheets(1).Cells(1, 1).Resize(2, j).Value = arrData

Set oXlBoek = Nothing
Set oXlApp = Nothing

-----------------------------------------------------------------------------------

If I redimension the array to 256 elements, this code works fine, but I need
it to work for a larger array. Can anyone please give me a suggestion how I
can solve this?

TIA,
Renate


--

Dave Peterson