As for the CurrentRegion issue, you might get better with this:

Set r = bk.Worksheets(1).UsedRange