As a start, Access didn't let the code run at all, throwing an error at "Dim rng1 As Excel.Range" - Error "User defined type not defined".
I tried something like that before, and access just wouldn't like any of my declaration types (Range, Excel.Range, ApXL.Range, etc etc) eventually i tried...