I think you were on the right track for most part.
I typically will use Attach Window instead of Attach Browser (I’m not sure if one is better, but Windows have different activities that you can use with it too).
Also, you will want any actions associated with the window to be inside that scope. Like, you wouldn’t want to do a For loop that reattaches each time inside the loop, rather, Attach first then use the For loop to perform the actions for that window. —of course, this won’t always be the case depending on the process.
You also want to avoid embedding Attach activities inside other Attach activities, because the way they work is that they contain the first line of the full selector, so all activities inside will use a partial selector omitting the first line.
For the logic, you would want to probably look for a keyword or element that identifies that your search is finished (you don’t want it seeing the previous search result) —maybe getting the url is a way to do that. Then, look for a keyword or element that identifies that it is found, and if it that keyword or element was not found you can either A) assume it is not found or B) check for the not found text as verification. And, this all depends on how the site is and how it is when a search result is found.
All in all, example pseudocode might look like this:
Read Source from Excel
Add Columns if necessary
Invoke a Login workflow that Opens Browser if it isn't already logged in
Attach to Window
For each row // can possibly use a flowchart as the Body inside the For each for better design
Initialize test strings to ""
Input row item and execute search
(optional) Find element or text that identifies search is complete for row item
Find element/text or Get Text of a found result // set TimeoutMS accordingly
If condition //using element, element isNot Nothing... using text, text.Trim<>"" or Not text.Contains("keyword")
Get Attribute for url
Assign row("Result") = url
Assign row("Result") = "Not Found"
Write Range of table to update file
So hopefully that brings up some good ideas. It’s actually similar to what you are trying to do. Apologies for not being able to provide you a solved workflow.