Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Problem with find method
I have the following code that looks for dates from an array that may
already exist in a worksheet. When I test this code with a date in the array already put inthe worksheet the find results in nothing; what needs to be corrected? 'load the dates in row B into the array Dim dtArray() As Date ' capture the selected dates Dim icol as Integer Dim ColCount as Integer Dim Colstep as Integer Dim i As Integer Dim c as Range ReDim dtArray(ColCount) For iCol = 1 To ColCount Step 1 dtArray(iCol) = Cells(2, Colstep).Value Colstep = Colstep + 1 Next iCol ' check if these dates were previously processed Worksheets("datecontrol").Activate With ActiveSheet.Usedrange ' the dates should be in Col A & it doesn't matter if I use Range("A:A") or put the date in A2 and say .Range("A2") For i = LBound(dtArray) To UBound(dtArray) Set c = .Find(what:=dtArray(i), Lookat:=xlWhole) If Not c Is Nothing Then ' c always ends up being "Nothing" MsgBox "This date may have been processed; " & c.Value & " terminating program" Application.ScreenUpdating = True Exit Sub End If Next i End With |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Problem with find method
There is nothing jumping out at me so lets start from the top...
The date you are looking for exists in the used range? The date you are looking for is exactly the same as the date in the used range... right down to the minutes and seconds... One is not text while the other is an actual date? "Ralph Heidecke" wrote: I have the following code that looks for dates from an array that may already exist in a worksheet. When I test this code with a date in the array already put inthe worksheet the find results in nothing; what needs to be corrected? 'load the dates in row B into the array Dim dtArray() As Date ' capture the selected dates Dim icol as Integer Dim ColCount as Integer Dim Colstep as Integer Dim i As Integer Dim c as Range ReDim dtArray(ColCount) For iCol = 1 To ColCount Step 1 dtArray(iCol) = Cells(2, Colstep).Value Colstep = Colstep + 1 Next iCol ' check if these dates were previously processed Worksheets("datecontrol").Activate With ActiveSheet.Usedrange ' the dates should be in Col A & it doesn't matter if I use Range("A:A") or put the date in A2 and say .Range("A2") For i = LBound(dtArray) To UBound(dtArray) Set c = .Find(what:=dtArray(i), Lookat:=xlWhole) If Not c Is Nothing Then ' c always ends up being "Nothing" MsgBox "This date may have been processed; " & c.Value & " terminating program" Application.ScreenUpdating = True Exit Sub End If Next i End With |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Problem with find method
do you have any code left out above:
ReDim dtArray(ColCount) For iCol = 1 To ColCount Step 1 or is ColCount meant to be = 0 "Ralph Heidecke" wrote: I have the following code that looks for dates from an array that may already exist in a worksheet. When I test this code with a date in the array already put inthe worksheet the find results in nothing; what needs to be corrected? 'load the dates in row B into the array Dim dtArray() As Date ' capture the selected dates Dim icol as Integer Dim ColCount as Integer Dim Colstep as Integer Dim i As Integer Dim c as Range ReDim dtArray(ColCount) For iCol = 1 To ColCount Step 1 dtArray(iCol) = Cells(2, Colstep).Value Colstep = Colstep + 1 Next iCol ' check if these dates were previously processed Worksheets("datecontrol").Activate With ActiveSheet.Usedrange ' the dates should be in Col A & it doesn't matter if I use Range("A:A") or put the date in A2 and say .Range("A2") For i = LBound(dtArray) To UBound(dtArray) Set c = .Find(what:=dtArray(i), Lookat:=xlWhole) If Not c Is Nothing Then ' c always ends up being "Nothing" MsgBox "This date may have been processed; " & c.Value & " terminating program" Application.ScreenUpdating = True Exit Sub End If Next i End With |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Problem with find method
With ActiveSheet.Usedrange ' the dates should be in Col A & it doesn't
matter if I use Range("A:A") or put the date in A2 and say .Range("A2") For i = LBound(dtArray) To UBound(dtArray) Set c = .Find(what:=dtArray(i), Lookat:=xlWhole) using xlDate rather than xlWhole seems to have done the trick. "Ralph Heidecke" wrote in message ... I have the following code that looks for dates from an array that may already exist in a worksheet. When I test this code with a date in the array already put inthe worksheet the find results in nothing; what needs to be corrected? 'load the dates in row B into the array Dim dtArray() As Date ' capture the selected dates Dim icol as Integer Dim ColCount as Integer Dim Colstep as Integer Dim i As Integer Dim c as Range ReDim dtArray(ColCount) For iCol = 1 To ColCount Step 1 dtArray(iCol) = Cells(2, Colstep).Value Colstep = Colstep + 1 Next iCol ' check if these dates were previously processed Worksheets("datecontrol").Activate With ActiveSheet.Usedrange ' the dates should be in Col A & it doesn't matter if I use Range("A:A") or put the date in A2 and say .Range("A2") For i = LBound(dtArray) To UBound(dtArray) Set c = .Find(what:=dtArray(i), Lookat:=xlWhole) If Not c Is Nothing Then ' c always ends up being "Nothing" MsgBox "This date may have been processed; " & c.Value & " terminating program" Application.ScreenUpdating = True Exit Sub End If Next i End With |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Find Method problem in Excel VBA.... | Excel Worksheet Functions | |||
Find Method | Excel Programming | |||
range.find method called into a VBA function (problem) | Excel Programming | |||
Find Method | Excel Programming | |||
The Find Method | Excel Programming |