Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Array/Matrix

I need help setting up an array to read data into.

I would like to read data from 3 columns on one sheet into an array and
then copy that information into another sheet.

The Array/Matrix will be 3 columns wide, but the number of rows will
need to be dynamic.

Can anyone help?

TIA
E

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 46
Default Array/Matrix

If you want to copy and paste, you should just use the copy and paste
methods, and not worry about matrices. But if you need a dynamic
matrix, I think you should look into "Redim Preserve". Redim will
"Dim" the variable with new subscripts. For example,

Dim var (10) as long
[Use var in code. Decide that you need more than 10 long words]
Redim var (20) as long

The Redim has changed the size of the array. Unfortunately, it has
also lost the 10 values in the previous array. To save these use the
"Preserve" keyword:

Dim var (10) as long
[Use var in code. Decide that you need more than 10 long words]
Redim Preserve var (20) as long

Now, var has changed size, and the first 10 values remain unchanged.

The order of the subscripts is important in a matrix. If you are going
to change a matrix, change only the last subscript. For example:

Dim Mat (10, 5) as long
[Use var in code. Decide that you need more than 10 long words]
Redim Preserve Mat (10, 10) as long

Hope this helps,
Dom



Egon wrote:
I need help setting up an array to read data into.

I would like to read data from 3 columns on one sheet into an array and
then copy that information into another sheet.

The Array/Matrix will be 3 columns wide, but the number of rows will
need to be dynamic.

Can anyone help?

TIA
E


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 318
Default Array/Matrix

Hi
Here is some code.. However you can accomplish this more succintly by just
copying and pasting in code.

Public Function CopyFromOneSheetToAnother(ByVal sOne$, ByVal sOther$) As
Boolean

Dim aValues() As Variant
Dim i%, lNumRows&
Dim wsOne As Worksheet
Dim wsOther As Worksheet

Set wsOne = ThisWorkbook.Worksheets(sOne)
Set wsOther = ThisWorkbook.Worksheets(sOther)

lNumRows = wsOne.Cells.SpecialCells(xlCellTypeLastCell).Row
ReDim aValues(1 To lNumRows, 1 To 3)
For i = 1 To wsOne.Cells.SpecialCells(xlCellTypeLastCell).Row
aValues(i, 1) = wsOne.Cells(i, 1).Value
aValues(i, 2) = wsOne.Cells(i, 2).Value
aValues(i, 3) = wsOne.Cells(i, 3).Value
Next i

With wsOther
With .Range(.Cells(1, 1), .Cells(lNumRows, 3))
.Value = aValues
End With
End With

End Function


"Egon" wrote:

I need help setting up an array to read data into.

I would like to read data from 3 columns on one sheet into an array and
then copy that information into another sheet.

The Array/Matrix will be 3 columns wide, but the number of rows will
need to be dynamic.

Can anyone help?

TIA
E


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Array/Matrix

My problem is that I don't want to copy and paste because the data that
is being copied is in different locations throughout the spread sheet.
This is what we are trying to make easier for some people now. Some
rows have data that needs to be copied, some rows do not. I need to be
able to copy only the rows that are bold, filtering out 3 columns in
the source, and pasting into a new worksheet so that it can be set off
as a report each week.

Thanks.
E

wrote:
If you want to copy and paste, you should just use the copy and paste
methods, and not worry about matrices. But if you need a dynamic
matrix, I think you should look into "Redim Preserve". Redim will
"Dim" the variable with new subscripts. For example,

Dim var (10) as long
[Use var in code. Decide that you need more than 10 long words]
Redim var (20) as long

The Redim has changed the size of the array. Unfortunately, it has
also lost the 10 values in the previous array. To save these use the
"Preserve" keyword:

Dim var (10) as long
[Use var in code. Decide that you need more than 10 long words]
Redim Preserve var (20) as long

Now, var has changed size, and the first 10 values remain unchanged.

The order of the subscripts is important in a matrix. If you are going
to change a matrix, change only the last subscript. For example:

Dim Mat (10, 5) as long
[Use var in code. Decide that you need more than 10 long words]
Redim Preserve Mat (10, 10) as long

Hope this helps,
Dom



Egon wrote:
I need help setting up an array to read data into.

I would like to read data from 3 columns on one sheet into an array and
then copy that information into another sheet.

The Array/Matrix will be 3 columns wide, but the number of rows will
need to be dynamic.

Can anyone help?

TIA
E


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Array/Matrix

Are you saying I sould just copy and paste on a per line basis between
the two workbooks and that it would be faster to do so?

Alok wrote:
Hi
Here is some code.. However you can accomplish this more succintly by just
copying and pasting in code.

Public Function CopyFromOneSheetToAnother(ByVal sOne$, ByVal sOther$) As
Boolean

Dim aValues() As Variant
Dim i%, lNumRows&
Dim wsOne As Worksheet
Dim wsOther As Worksheet

Set wsOne = ThisWorkbook.Worksheets(sOne)
Set wsOther = ThisWorkbook.Worksheets(sOther)

lNumRows = wsOne.Cells.SpecialCells(xlCellTypeLastCell).Row
ReDim aValues(1 To lNumRows, 1 To 3)
For i = 1 To wsOne.Cells.SpecialCells(xlCellTypeLastCell).Row
aValues(i, 1) = wsOne.Cells(i, 1).Value
aValues(i, 2) = wsOne.Cells(i, 2).Value
aValues(i, 3) = wsOne.Cells(i, 3).Value
Next i

With wsOther
With .Range(.Cells(1, 1), .Cells(lNumRows, 3))
.Value = aValues
End With
End With

End Function


"Egon" wrote:

I need help setting up an array to read data into.

I would like to read data from 3 columns on one sheet into an array and
then copy that information into another sheet.

The Array/Matrix will be 3 columns wide, but the number of rows will
need to be dynamic.

Can anyone help?

TIA
E





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 318
Default Array/Matrix

Hi Egon,
No copying and pasting on a per line basis is always the slower option. Your
best bet is to copy information from various parts of the workbook and moving
it into an array and then pasting it all at once to the other worksheet.
The example I gave you should work except for the following

1. You will need to modify the routine to identify each row.
2. You will need to set up the array as a column by row array so that you
can use Redim Preserve the existing information while you are adding
additional rows in the second dimension.
3. Finally you will need to transpose the array as you post it in the other
sheet.



"Egon" wrote:

Are you saying I sould just copy and paste on a per line basis between
the two workbooks and that it would be faster to do so?

Alok wrote:
Hi
Here is some code.. However you can accomplish this more succintly by just
copying and pasting in code.

Public Function CopyFromOneSheetToAnother(ByVal sOne$, ByVal sOther$) As
Boolean

Dim aValues() As Variant
Dim i%, lNumRows&
Dim wsOne As Worksheet
Dim wsOther As Worksheet

Set wsOne = ThisWorkbook.Worksheets(sOne)
Set wsOther = ThisWorkbook.Worksheets(sOther)

lNumRows = wsOne.Cells.SpecialCells(xlCellTypeLastCell).Row
ReDim aValues(1 To lNumRows, 1 To 3)
For i = 1 To wsOne.Cells.SpecialCells(xlCellTypeLastCell).Row
aValues(i, 1) = wsOne.Cells(i, 1).Value
aValues(i, 2) = wsOne.Cells(i, 2).Value
aValues(i, 3) = wsOne.Cells(i, 3).Value
Next i

With wsOther
With .Range(.Cells(1, 1), .Cells(lNumRows, 3))
.Value = aValues
End With
End With

End Function


"Egon" wrote:

I need help setting up an array to read data into.

I would like to read data from 3 columns on one sheet into an array and
then copy that information into another sheet.

The Array/Matrix will be 3 columns wide, but the number of rows will
need to be dynamic.

Can anyone help?

TIA
E




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Matrix Math using LOOKUP inside Array {} Function ExcelMonkey Excel Worksheet Functions 4 February 15th 07 11:10 PM
Matrix/array question cursednomore Excel Discussion (Misc queries) 0 November 9th 05 08:09 PM
mirrored array/matrix hierarchii Excel Discussion (Misc queries) 3 August 5th 05 09:35 AM
How to use an array or matrix to return text vs. numeric values Ingrid Excel Worksheet Functions 2 April 10th 05 12:51 AM
Lookup of sorts...Matrix Array etc. Michele[_2_] Excel Programming 5 February 14th 04 10:24 AM


All times are GMT +1. The time now is 03:48 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"