You are setting your sheet incorrectly in the beginning of the Initialize part:
Set sh = sheet1
Set sh = Sheets("sheet1")
Not sure why you don't get an error for that.
Edit: Tried "Set sh = sheet1" in a simple test code and it worked. When I run your code, I'm getting a compiling error, saying that a variable is not defined and the "sheet1" text is highlighted. When I change "sheet1" into "Sheets("sheet1")", the error is gone.
PS: When posting codes, could you use the drop down arrow attached to the code button you would normally click and select "basic". This will make your code look like it is in VBA and makes it easier to reference code lines, since they are numbered.