What is the difference between Sheets.Select and Sheets.Activate?
excel, spreadsheet, vba
Solution
The difference is in their flexibility.
`Activate` make the specified sheet the active sheet, and may only be applied to a single sheet
`Select` allow for optionally extending the currently selected sheets to include the specified sheet, eg
Worksheets("Sheet2").Select Replace:=False
and also allow for selecting an array of sheets
Sheets(Array("Sheet3", "Sheet2")).Select
In their minimal form `Select` and `Activate` do the same thing.
For example, if only one sheet is currently selected (say `Sheet3`) or if more than one sheet is selected but excluding say `Sheet2`, then `Worksheets("Sheet2").Select` and `Worksheets("Sheet2").Activate` both make `Sheet2` the sole selected and active sheet.
On the other hand, if say both `Sheet2` and `Sheet3` are selected and `Sheet2` is the active sheet, then `Worksheets("Sheet3").Activate` leaves both sheets selected and makes `Sheet3` the active sheet, whereas `Worksheets("Sheet2").Select` makes `Sheet3` the sole selected and active sheet.
Problem
In VBA for Excel, what is the difference between `Sheets.Select` and `Sheets.Activate` ?