Maybe `Dim SourceSh As Variant` and instead of working out of the worksheet, `SourceSh` will equal your worksheet. By putting the worksheet into an `Array` (puts it in memory) you will work a ton quicker on all your loops. I had a similar issue a few weeks ago, splitting a master sheet (data draw) into month tabs.

[WiseOwl][1] has a good video on Arrays. [Here][1] is my post and the answer I received, a lot of solid advice!

Since I am still practicing, I will take a crack at it, update your question with information like an example of the data you are moving, the sheets and anything else that you think is relevant.

[1]: https://www.youtube.com/watch?v=h9FTX7TgkpM&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5&index=28
[2]: https://codereview.stackexchange.com/questions/210120/tab-month-tracker