I have a macro that is duplicated on buttons on 3 worksheets which moves between worksheets and at the moment once the macro command is completed I have it set to return to the 3rd sheet every time. Is there a command I can put in the code that would return the view to the sheet that the macro was activated on in the first place rather than a set sheet.
Asked
Active
Viewed 2.2k times
5
-
1Save the active sheet in a variable, then, after your macro finished, select the sheet within the variable again. – Mafii Feb 02 '17 at 10:57
-
3My fist question would be, if you want to return to the initial worksheet, why are you leaving it? Maybe your macro could be written [without using Select nor Activate](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)? – Vincent G Feb 02 '17 at 10:57
-
@VincentG good point. Definitely the cleaner approach. – Mafii Feb 02 '17 at 10:59
-
I tend to use `with` in most of my codes but i'm finding this very complicated. It has to move rows of data to other worksheets depending on the contents of a few cells and works down the sheet in reverse order. – Tom Feb 02 '17 at 11:13
1 Answers
8
Save the active sheet in a variable, then, after your macro finished, select the sheet within the variable again:
' at the start of your macro:
Dim sourceSheet as Worksheet
set sourceSheet = ActiveSheet
' at the end of your macro:
Call sourceSheet.Activate

Mafii
- 7,227
- 1
- 35
- 55