View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default array function for multidimensional arrays

You don't need an array for that, just copy E:K over, and reduce J by 10
afterwards

Sh.Range("E" & Target.Row).Resize(,7).Copy wkSh.Range("A" & iNextFreeRow)
wkSh.Range("F" & iNextFreeRow).Value = wkSh.Range("F" &
NextFreeRow).Value - 10

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"Curt" wrote in message
...
I have never built an array. If i understand from your post the "A"
represents column. If ciorrect how do you get to the row. What i am after
is
to copy 7 cells in a row to a different wksh this row changes with each
entry
and would be triggered by entry in column 'J'. Also "J" value must be
reduced
by 10.00 "J" is formated to currency wksh's to copy to have first row
frozen
for labeld & scrolling. Would need next row or insert a row on sheets
copied
to. Have this code to start with

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Select Case Sh.Name
Case "Data", "Motorcycle", "Indian", "Native"
'1=data 6=Motorcycle 7=Indian 8=Native nbrs are for sheets
If target.Column = 10 And target.Value 10 Then _
Call CopyStuff(target)
End Select
End Sub

want to copy Data cells in row colmn E F G H I J-10.00 K
to donors wksh to next open row in wksh
If we can make it happen once I feel i can repeat for other sheets.
will need to modify for < 10.00 to different sheet My challenge is to
modify
for needed change.
Old dog new tricks
Thanks in advance
.
"Bob Phillips" wrote:

That doesn't actually create a 2d array, rather it creates an array of
arrays. Instead of indexing like rbetuk(1,2) you have to use
rbetuk(1)(2),
not a great problem, but not as we are taught to index into arrays (more
like Javascript multi-dimensional arrays).

This gives standard 2d arrays, bujt is limited in how big the array can
be

rdetuk = ActiveSheet.Evaluate("{""A"",""B"",""C"";""D"", ""E"",
""F"";""G"",
""H"", ""I""}")

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my
addy)



"Jay" wrote in message
...
Try using arrays themselves as arguments:

rbetuk = Array(Array("A", "B", "C"), Array("D", "E", "F"), Array("G",
"H",
"I"))

You can test this by reading the array 'in' and 'out' with the
following
test code:

Sub stefi()
rbetuk = Array(Array("A", "B", "C"), _
Array("D", "E", "F"), _
Array("G", "H", "I"))
For Each itm In rbetuk
For Each itm2 In itm
MsgBox itm2
Next 'itm2
Next 'itm
End Sub

--
Jay


"Stefi" wrote:

Hi All,

rbetuk = Array("A", "B", "C")

is a very convenient way of creating arrays, but it creates only a 3x1
dimension array. Can I declare a 3x2 or 3x3 dimension array in this
way?


Thanks,
Stefi