Thanks Jim. The habit of choosing "getting" over "selecting" is kind of ingrained after years of slow script results in both vba and jsl, but I suppose I'm mostly thinking of cases where I need to iterate not only through rows but through each column.
Here are a couple of scenarios regarding semiconductor test data, where each row is a device tested in production, and each column (after the index columns) is a parametric test on the devices. Each column has spec limits stored as a property. One script loops through and determines on a column by column basis the yield, high side and low side fallout, etc (lots of other stuff but that's irrelevant). Generally with semiconductor data, it is tested with stop on first fail, so the columns to the right of a failure might be missing. If data is instead tested continue on fail, it might be nice to convert to 'stop on fail.' So I have a script to convert to stop-on-first-fail data as well. In both of these cases, changing over to get rows where() vs select where() dramatically improved script execution time. It's possible that it might be faster using select where() if the table is invisible; I haven't checked this.
For the row states though, it is just looping through once, so now that I take a step back and think about it, it probably isn't too bad.
Here's a screenshot of two script versions for my stop on fail script. This change made a huge difference in execution time.
And a whole other topic might be why I'm parsing it as a string. I'd have to go back and look at this again, but years ago I found that parsing as a string was much faster, but that might have been while I still had the select where() statements.