View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Postman[_2_] Postman[_2_] is offline
external usenet poster
 
Posts: 6
Default Adding values to 2-dim array

The excel.worksheet function MATCH(Person,{NameList},0) will return the
index number of the name supplied:
e.g. Janet would return 4

Example:
In Excel
- Name the worksheet "theName"
- Name the list of names "NameList"
- Assume you want ages placed one col to right of names

Using this from VBA

Sub Test()
FillList "Fred", 42
FillList "Janet", 38
FillList "Brian", 22
End Sub

Sub FillList(strName, lngAge)
Const BAD_MATCH As String = "Unable to get the Match"
Const EXACT_MATCH As Long = 0
Dim mySheet As Excel.Worksheet
Dim myRange As Excel.Range
Dim ListIndex As long
Set mySheet = Excel.ActiveWorkbook.Worksheets("theSheet")
Set myRange = mySheet.Range("NameList")

On Error Resume Next ' Without this code will fall over if strName is
not in the list
ListIndex = Excel.WorksheetFunction.Match(strName, myRange, EXACT_MATCH)

If Err.Number = 0 Then
myRange.Cells(ListIndex, 2).value = lngAge
ElseIf Left(Err.Description, 23) = BAD_MATCH Then
MsgBox "Name: " & strName & " not found"
Else 'Unexpected Error
MsgBox "Error Number: " & Err.Number & vbCrLf & _
"Description: " & Err.Description
End If
On Error GoTo 0

Set mySheet = Nothing
Set myRange = Nothing
End Sub



HTH




"Tod" wrote in message
...
| Okay, I'm going to try something new, so everybody duck!!
|
| I want to have an array that already has one dimension
| filled in, then have the second dimension filled in at
| run time. So if the first dimension is:
|
| Earl
| Larry
| Fred
| Janet
| Carrie
|
| I want to add values based on the name. The values will
| not always come in the same order as the names. Is there
| a way that I can "search" the array for the name and then
| add the value next to the match?
|
| tod
|
|
|