If you only need to rename the sheet and not perform any further actions, then why use an object variable at all?

replacing
NewSht = ActiveWorkbook.Worksheets("Log (2)")
NewSht.Name = NewShtName
with
ActiveWorkbook.Worksheets("Log (2)").Name = NewShtName
should do it.