Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I made a VB macro for excel. I recorded the following "Find" function and copied it into the macro: Cells.Find(What:="Time", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate When I run the macro I got an error message: "Error 91 Objectvariable or blockvariable With not defined." When I replace "LookAt:=xlWhole" by "LookAt:=xlPart", then the macro runs well, but will find the wrong cell. What's wrong? I don't use any "With" function in the macro. Thanks beforehand for your help. *** Sent via Developersdex http://www.developersdex.com *** |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I think you'd be better served to use a variable to represent that foundcell.
Then you could check to see if the find was successful: Dim FoundCell as range set foundcell = cells.find(.....) 'drop the .activate if foundcell is nothing then msgbox "Not found else msgbox "found at: " & foundcell.address end if === If your find fails, then you can't activate that cell--so your original code blows up. Gerrit Van Stempvoort wrote: I made a VB macro for excel. I recorded the following "Find" function and copied it into the macro: Cells.Find(What:="Time", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate When I run the macro I got an error message: "Error 91 Objectvariable or blockvariable With not defined." When I replace "LookAt:=xlWhole" by "LookAt:=xlPart", then the macro runs well, but will find the wrong cell. What's wrong? I don't use any "With" function in the macro. Thanks beforehand for your help. *** Sent via Developersdex http://www.developersdex.com *** -- Dave Peterson |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Your getting the error because it doesn't find a cell and then tries to
activate NOTHING. To avoid that: Dim rng as Range set rng = Cells.Find(What:="Time", _ After:=ActiveCell, _ LookIn:=xlFormulas, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ SearchFormat:=False) if rng is nothing then msgbox "Time was not found" else rng.Select msgbox "Found at " & rng.Address End if Make sure the cell you want to fine only contains Time - no leading or trailing spaces or other characters. Check it with a formula Assume it is in cell B9. In another cell =len(B9) If that doesn't return 4, it contains other characters. -- Regards, Tom Ogilvy "Gerrit Van Stempvoort" wrote: I made a VB macro for excel. I recorded the following "Find" function and copied it into the macro: Cells.Find(What:="Time", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate When I run the macro I got an error message: "Error 91 Objectvariable or blockvariable With not defined." When I replace "LookAt:=xlWhole" by "LookAt:=xlPart", then the macro runs well, but will find the wrong cell. What's wrong? I don't use any "With" function in the macro. Thanks beforehand for your help. *** Sent via Developersdex http://www.developersdex.com *** |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Macro recorded... tabs & file names changed, macro hangs | Excel Worksheet Functions | |||
Macro Help Needed - Excel 2007 - Print Macro with Auto Sort | Excel Worksheet Functions | |||
Need syntax for RUNning a Word macro with an argument, called from an Excel macro | Excel Programming | |||
macro to delete entire rows when column A is blank ...a quick macro | Excel Programming | |||
Start Macro / Stop Macro / Restart Macro | Excel Programming |