![]() |
another array approach question
let's see if i can explain clearly.
i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary |
another array approach question
To find the number of "rows"
msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson |
another array approach question
Hi Gary,
Try: Debug.Print "UBound(arr, 1) = "; UBound(arr, 1), _ "UBound(arr, 2) = "; UBound(arr, 2) --- Regards, Norman "Gary Keramidas" <GKeramidasATmsn.com wrote in message ... let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary |
another array approach question
thanks dave
-- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson |
another array approach question
thanks again norman
-- Gary "Norman Jones" wrote in message ... Hi Gary, Try: Debug.Print "UBound(arr, 1) = "; UBound(arr, 1), _ "UBound(arr, 2) = "; UBound(arr, 2) --- Regards, Norman "Gary Keramidas" <GKeramidasATmsn.com wrote in message ... let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary |
another array approach question
just curious, is something like this possible?
arr = Range("d2:d21,f2:f21") -- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson |
another array approach question
Is it possible? Yes.
Does it work the way you want? I bet not. It'll pick up the values in the first area and plop them into the array. But you should try it and see. Gary Keramidas wrote: just curious, is something like this possible? arr = Range("d2:d21,f2:f21") -- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson -- Dave Peterson |
another array approach question
you're right, it probably won't. i was wondering how to get the values from
column f from the array and couldn't. -- Gary "Dave Peterson" wrote in message ... Is it possible? Yes. Does it work the way you want? I bet not. It'll pick up the values in the first area and plop them into the array. But you should try it and see. Gary Keramidas wrote: just curious, is something like this possible? arr = Range("d2:d21,f2:f21") -- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson -- Dave Peterson |
another array approach question
You could loop through the range:
Option Explicit Sub testme() Dim myArr() As Variant Dim myRng As Range Dim myCell As Range Dim iRow As Long With ActiveSheet Set myRng = .Range("d2:d21") End With ReDim myArr(1 To myRng.Rows.Count, 1 To 2) iRow = 0 For Each myCell In myRng.Cells iRow = iRow + 1 myArr(iRow, 1) = myCell.Value myArr(iRow, 2) = myCell.Offset(0, 2).Value Next myCell End Sub Gary Keramidas wrote: you're right, it probably won't. i was wondering how to get the values from column f from the array and couldn't. -- Gary "Dave Peterson" wrote in message ... Is it possible? Yes. Does it work the way you want? I bet not. It'll pick up the values in the first area and plop them into the array. But you should try it and see. Gary Keramidas wrote: just curious, is something like this possible? arr = Range("d2:d21,f2:f21") -- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson -- Dave Peterson -- Dave Peterson |
another array approach question
thanks dave, i have code that works, i was just wondering about the technique i
posted. i think i may have even adapted some of your code: ReDim arr(0 To 1, 0 To 0) For q = 12 To lRowIng If .Cells(q, "B").Value < "" Then ReDim Preserve arr(0 To 1, 0 To arraySize) arr(0, arraySize) = .Cells(q, "B").Value arr(1, arraySize) = .Cells(q, "F").Value arraySize = arraySize + 1 End If Next -- Gary "Dave Peterson" wrote in message ... You could loop through the range: Option Explicit Sub testme() Dim myArr() As Variant Dim myRng As Range Dim myCell As Range Dim iRow As Long With ActiveSheet Set myRng = .Range("d2:d21") End With ReDim myArr(1 To myRng.Rows.Count, 1 To 2) iRow = 0 For Each myCell In myRng.Cells iRow = iRow + 1 myArr(iRow, 1) = myCell.Value myArr(iRow, 2) = myCell.Offset(0, 2).Value Next myCell End Sub Gary Keramidas wrote: you're right, it probably won't. i was wondering how to get the values from column f from the array and couldn't. -- Gary "Dave Peterson" wrote in message ... Is it possible? Yes. Does it work the way you want? I bet not. It'll pick up the values in the first area and plop them into the array. But you should try it and see. Gary Keramidas wrote: just curious, is something like this possible? arr = Range("d2:d21,f2:f21") -- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson -- Dave Peterson -- Dave Peterson |
another array approach question
If the functions in the file at http:/home.pacbell.net/beban are
available to your workbook, you might consider lrow = 17 arr = ArrayReshape(MakeArray(Range("D12:D" & lrow), Range("F12:F" & lrow), 1), 2, lrow - 12 + 1) Alan Beban Gary Keramidas wrote: thanks dave, i have code that works, i was just wondering about the technique i posted. i think i may have even adapted some of your code: ReDim arr(0 To 1, 0 To 0) For q = 12 To lRowIng If .Cells(q, "B").Value < "" Then ReDim Preserve arr(0 To 1, 0 To arraySize) arr(0, arraySize) = .Cells(q, "B").Value arr(1, arraySize) = .Cells(q, "F").Value arraySize = arraySize + 1 End If Next |
another array approach question
Here's something quick-n-dirty...
Sub Example() Dim Arr Arr = T2(Array(T1([D2:D21]), T1([F2:F21]))) End Sub '// Common Library Functions... Function T1(v) ' Transpose 1 time. With WorksheetFunction T1 = .Transpose(v) End With End Function Function T2(v) ' Double Transpose. With WorksheetFunction T2 = .Transpose(.Transpose(v)) End With End Function -- HTH :) Dana DeLouis Windows XP & Office 2007 "Gary Keramidas" <GKeramidasATmsn.com wrote in message ... thanks dave, i have code that works, i was just wondering about the technique i posted. i think i may have even adapted some of your code: ReDim arr(0 To 1, 0 To 0) For q = 12 To lRowIng If .Cells(q, "B").Value < "" Then ReDim Preserve arr(0 To 1, 0 To arraySize) arr(0, arraySize) = .Cells(q, "B").Value arr(1, arraySize) = .Cells(q, "F").Value arraySize = arraySize + 1 End If Next -- Gary "Dave Peterson" wrote in message ... You could loop through the range: Option Explicit Sub testme() Dim myArr() As Variant Dim myRng As Range Dim myCell As Range Dim iRow As Long With ActiveSheet Set myRng = .Range("d2:d21") End With ReDim myArr(1 To myRng.Rows.Count, 1 To 2) iRow = 0 For Each myCell In myRng.Cells iRow = iRow + 1 myArr(iRow, 1) = myCell.Value myArr(iRow, 2) = myCell.Offset(0, 2).Value Next myCell End Sub Gary Keramidas wrote: you're right, it probably won't. i was wondering how to get the values from column f from the array and couldn't. -- Gary "Dave Peterson" wrote in message ... Is it possible? Yes. Does it work the way you want? I bet not. It'll pick up the values in the first area and plop them into the array. But you should try it and see. Gary Keramidas wrote: just curious, is something like this possible? arr = Range("d2:d21,f2:f21") -- Gary "Dave Peterson" wrote in message ... To find the number of "rows" msgbox ubound(arr,1) - lbound(arr,1) + 1 To find the number of "columns" in that array: msgbox ubound(arr,2) - lbound(arr,2) + 1 If you want the total elements, just multiply these two. Gary Keramidas wrote: let's see if i can explain clearly. i'm using this to initialize the array ReDim arr(0 To 1, 0 To 0) then i use a redim preserve to add the elements how can i tell how many elements there are to loop through? ubound(arr) returns 1 and i know there are more elements than that. -- Gary -- Dave Peterson -- Dave Peterson -- Dave Peterson |
All times are GMT +1. The time now is 05:09 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com