View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
FrankBooth FrankBooth is offline
external usenet poster
 
Posts: 1
Default Iterating through row cells on column Match, help please.

Now getting a 2024, Type Mismatch error in this line: res =
Application.Match(vName, xlRng2, 0)

There is a match for the first name that is picked up on the second
sheet, so I don't know why the error.

Thanks




And is there some reason you're starting a new instance of excel?

If no, you could do all your work within the current instance:

Option Explicit

Sub DoReport()

Application.ScreenUpdating = False

Dim xlWB1 As Excel.Workbook
Dim xlWB2 As Excel.Workbook
Dim xlRng2 As Excel.Range
Dim res As Variant

Dim i As Integer
Dim j As Integer
Dim lNameLoop As Integer
Dim vName As String
Dim vCalls As Integer

Set xlWB1 = Workbooks.Open("C:\PerfSumm\PerfSumm1.tab")
Set xlWB2 = Workbooks.Open("C:\PerfSumm\TheReport.xls")
Set xlRng2 = Worksheets(2).Range("a1:a100")

For lNameLoop = 1 To 100

vName = xlWB1.Sheets(1).Cells(lNameLoop, "A").Value
vCalls = xlWB1.Worksheets(1).Cells(lNameLoop, "B").Value

res = Application.Match(vName, xlRng2, 0)

If IsError(res) Then
'not found
Else
If IsEmpty(xlRng2(res).Offset(0, 1)) Then
xlRng2(res).Offset(0, 1).Value = vCalls
ElseIf IsEmpty(xlRng2(res).Offset(0, 2)) Then
xlRng2(res).Offset(0, 2).Value = vCalls
Else
xlRng2(res).End(xlToRight).Offset(0, 1).Value = vCalls
End If
End If

Next lNameLoop
Application.ScreenUpdating = True
End Sub