OK, first, your code to open Excel using CreateObject should work in Access as-is. I don't see anything wrong with it.
Second, your code calls a function in Excel CopyFromRecordset which takes a recordset object as an argument. Note that this function is within Excel, it's not an Access function. So, assuming your Excel has that function, your code should work.
then I'd like Access to be able to copy the contents of Tbl_Exceptions_Categories into the Category Table.xls, specifically on to the tab called 'Unmatched Data'
Are you saying that the CopyFromRecordset function doesn't do that?
Either way, are you able to go into Excel and write or record a macro that does what you want? If so, then once you have your macro written, you can just place the macro code into your Access function, starting each line with .(As a convenience, you can just use so you don't have to put it on each line -- e.g.,
Code:
With appexcel
.Selection.ClearContents
.Range("A2").Select
End with