|Since I can't see your workbook from where I'm sitting, I can only ask some questions to see if we can determine the cause of the error.|
A "Subscript out of range" error is typically caused when the code can't find the named object it is looking for. In the code I offered the only named objects we are looking for are sheets with names that match your ITEM categories, so I suspect the problem is with your sheet names.
You said you had a sheet named Work and 5 other sheets with names that match the 5 categories, right?
I am assuming a few things:
1 - "Work" is the first worksheet in your workbook.
2 - The ITEM categories are in Column A of the Work sheet, starting A2
3 - The five other worksheets have names that match the categories exactly, letter for letter, space for space. No leading spaces, no trailing spaces, no extra characters.
e.g. If you have the word Books somewhere in Column A on the Work sheet, then you have a sheet named Books. The uses the values from Works Column A as sheet names, so if you don't have exact matches, then the code would throw up that error when it tries to paste something into a sheet that doesn't exist.
Assuming all of the above is correct, try this:
Put the cursor in the code and then instead of clicking the green Run (it's Run, not Play) arrow, hit F8 to single step through the code. Each time you hit F8, the next line to be executed will turn yellow. Keep pressing F8 and tell me what line was yellow just before the next F8 caused the error to pop up.
My guess is that one of the sheet names doesn't match one of your categories.
Posting Tip: Before posting Data or VBA Code, read this How-To.