I cannot reproduce this error. When something runs on one computer and not another, there is usually some difference that the user isn't considering, often in the file and having nothing to do with the computers.
What does the data look like on the active sheet? How is this code being invoked? Are you sure that the intended sheet is active when this code is invoked? One suggestion would be to add a line before the line that fails to confirm the correct sheet:
Also consider attaching your file, so we can do a better job of troubleshooting. The paper clip icon does not work for attachments. To attach a file, under the text box where you type your reply click the Go Advanced button. On the next screen scroll down and click on Manage Attachments, which will show a pop-up window to Select and Upload a file. Then close the window.
I have a couple of other observations. These are not causing your problem but you might find them helpful.
This declaration does not do what you think. In VB, you must specify a data type for each variable, or it will default to Variant. In this declaration, ProductSort is a Range and all the other are Variants. This doesn't cause an error but it would be a better practice to specify the data type intended.
It is not necessary to Select things to manipulate them. When you Select, it affects the worksheet display, could disorient the user, and takes a lot longer to execute. For example, this
could be done like this:
You are using an extra level of indirection to refer to the active sheet. Again, not an error, but might be a little cleaner to do this:
Bookmarks