Put it in a Try/Catch block, as you should with any code that might fail? If it's in a try/catch block, then given the information you've given us, the design is flawed by definition, because....
- The ExcelWorkbook.Save() function is something you can't change. It is what it is...
- It's failing because the user canceled the save, and you're calling the SaveAs method without first checking for the existence of the file and if Excel prompts the user to give them the chance to cancel, and the only option is this error, then the only other option is to not give the user that choice.
As a general recommendation, I would say you should check for the existence of the file and give the user the chance to cancel in YOUR code. If they cancel, problem avoided. If they choose not to cancel, just delete the file before calling the Excel Save() function.
Alternately, you can instead use the SaveAs() function instead of Save(), and set the optional parameter named ConflictResolution to be XlSaveConflictResolution.xlLocalSessionChanges
(Just in case you ask, I know that dealing with optional parameters from C# is a pain, so check out this previous question for how to deal with those...)