Нет необходимости выбирать или активировать что-либо, чтобы делать то, что вы хотите. Возможно, вы не находите значение из-за некоторых аргументов поиска, но я бы сначала переписал код, чтобы избежать смены листов. Что-то вроде
Dim sh As Worksheet
Dim rFound As Range
Set sh = ThisWorkbook.Sheets("productsheet")
Set rFound = sh.Cells.Find(sku, , xlValues, xlPart)
If rFound Is Nothing Then
Set rNext = sh.Cells(sh.Rows.Count, 1).End(xlUp).Offset(1, 0)
rNext.Value = trimmedsku
rNext.Offset(0, 1).Value = skudescription
rNext.Offset(0, 3).Value = sku
rNext.Offset(0, 8).Value = 1
rNext.Offset(0, 10).Value = cost
rNext.Offset(0, 11).Value = price
rNext.Offset(0, 12).Value = price
rNext.Offset(0, 14).Value = "Y"
rNext.Offset(0, 15).Value = "N"
rNext.Offset(0, 16).Value = "Y"
rNext.Offset(0, 34).Value = 1
End If
Если rFound ничего не обнаруживает (sku не найден) и этого не должно быть, то убедитесь, что аргументы Find верны. Хотите посмотреть на xlFormulas или xlValues? Целое или Часть?
Я не вижу в ваших аргументах Find ничего такого, что могло бы сделать его более ограничительным, поэтому я не могу дать вам какой-либо конкретный совет относительно того, какие аргументы нужно изменить. Может быть, вы могли бы сделать новую процедуру тестирования, похожую на ту, которую я опубликовал, и посмотрите, не поможет ли замена листов.