ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Arrays (https://www.excelbanter.com/excel-programming/377558-arrays.html)

Geoff

Arrays
 
I cannot get an array to populate. There are a number of txtboxes on a form
filled with data.

Each time the txtboxes are filled a cmdbutton is clicked and the results are
saved to an array, the txtboxes are cleared ready for new data entry.
It works first time round but on the second round of txtbox renewal it fails
with Subscript out of Range.
Elsewhere in my code this structure works but there is only 1 dimension.

This is the code I am using:

Public enterArray() as Variant

In the initialise event:
enterCount=1 '''for reasons elsewhere in code

In the cmdbutton click event:
Sub Test()
ReDim Preserve enterArray(1 To enterCount, 0 to 4) ''''Fails
here
enterArray(enterCount, 0) = txtName.Text
enterArray(enterCount, 1) = txtNarrative.Text
enterArray(enterCount, 2) = txtDate.Text
enterArray(enterCount, 3) = txtInits.Text
enterCount = enterCount + 1
End Sub

Could someone please show me where I have gone wrong.

Thanks

Geoff


Dave Peterson

Arrays
 
When you ReDim an array, you can only change the last dimension.

Maybe you can swap them:

ReDim Preserve enterArray(0 to 4, 1 To enterCount)

Geoff wrote:

I cannot get an array to populate. There are a number of txtboxes on a form
filled with data.

Each time the txtboxes are filled a cmdbutton is clicked and the results are
saved to an array, the txtboxes are cleared ready for new data entry.
It works first time round but on the second round of txtbox renewal it fails
with Subscript out of Range.
Elsewhere in my code this structure works but there is only 1 dimension.

This is the code I am using:

Public enterArray() as Variant

In the initialise event:
enterCount=1 '''for reasons elsewhere in code

In the cmdbutton click event:
Sub Test()
ReDim Preserve enterArray(1 To enterCount, 0 to 4) ''''Fails
here
enterArray(enterCount, 0) = txtName.Text
enterArray(enterCount, 1) = txtNarrative.Text
enterArray(enterCount, 2) = txtDate.Text
enterArray(enterCount, 3) = txtInits.Text
enterCount = enterCount + 1
End Sub

Could someone please show me where I have gone wrong.

Thanks

Geoff


--

Dave Peterson

Geoff

Arrays
 
That's got me past that hurdle.

Now i just have to figure how to read them back.

Thank you. I had tried every variation.

Geoff

"Dave Peterson" wrote:

When you ReDim an array, you can only change the last dimension.

Maybe you can swap them:

ReDim Preserve enterArray(0 to 4, 1 To enterCount)

Geoff wrote:

I cannot get an array to populate. There are a number of txtboxes on a form
filled with data.

Each time the txtboxes are filled a cmdbutton is clicked and the results are
saved to an array, the txtboxes are cleared ready for new data entry.
It works first time round but on the second round of txtbox renewal it fails
with Subscript out of Range.
Elsewhere in my code this structure works but there is only 1 dimension.

This is the code I am using:

Public enterArray() as Variant

In the initialise event:
enterCount=1 '''for reasons elsewhere in code

In the cmdbutton click event:
Sub Test()
ReDim Preserve enterArray(1 To enterCount, 0 to 4) ''''Fails
here
enterArray(enterCount, 0) = txtName.Text
enterArray(enterCount, 1) = txtNarrative.Text
enterArray(enterCount, 2) = txtDate.Text
enterArray(enterCount, 3) = txtInits.Text
enterCount = enterCount + 1
End Sub

Could someone please show me where I have gone wrong.

Thanks

Geoff


--

Dave Peterson


Geoff

Arrays
 
.......which I have just worked out. That was the easy after the advice!

<vbg

Many thanks.

Geoff

"Geoff" wrote:

That's got me past that hurdle.

Now i just have to figure how to read them back.

Thank you. I had tried every variation.

Geoff

"Dave Peterson" wrote:

When you ReDim an array, you can only change the last dimension.

Maybe you can swap them:

ReDim Preserve enterArray(0 to 4, 1 To enterCount)

Geoff wrote:

I cannot get an array to populate. There are a number of txtboxes on a form
filled with data.

Each time the txtboxes are filled a cmdbutton is clicked and the results are
saved to an array, the txtboxes are cleared ready for new data entry.
It works first time round but on the second round of txtbox renewal it fails
with Subscript out of Range.
Elsewhere in my code this structure works but there is only 1 dimension.

This is the code I am using:

Public enterArray() as Variant

In the initialise event:
enterCount=1 '''for reasons elsewhere in code

In the cmdbutton click event:
Sub Test()
ReDim Preserve enterArray(1 To enterCount, 0 to 4) ''''Fails
here
enterArray(enterCount, 0) = txtName.Text
enterArray(enterCount, 1) = txtNarrative.Text
enterArray(enterCount, 2) = txtDate.Text
enterArray(enterCount, 3) = txtInits.Text
enterCount = enterCount + 1
End Sub

Could someone please show me where I have gone wrong.

Thanks

Geoff


--

Dave Peterson



All times are GMT +1. The time now is 07:33 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com