Вы неправильно используете блок С ... Конец с.Обратите внимание на .
, который позволяет .Range и .Cells наследовать родительский лист.
With ThisWorkbook.Worksheets(2)
Dim skumaestro As Range
Set skumaestro = .Range(.Cells(lasthandlerow, 13), .Cells(lastskurow, 13))
End With
Ваша формула использует адреса xlA1, чтобы попытаться создать формулу FormulaR1C1.Нет определенного родительского листа. штрих-коды и skucodes не определены.Вы не используете start для циклического перемещения по чему-либо.
Я думаю, что вы хотите что-то вроде
For start = 1 To count
with Range("C" & Rows.count).End(xlUp).Offset(1) 'what parent worksheet?
.FormulaR1C1 = "=INDEX(" & barcodes.Address(True, True,
xlR1C1, True) & ",MATCH(" & skumaestro(start).Address(False, True, xlR1C1,
False) & "," & skucodes.Address(True, True, xlR1C1, True) & ",0))"
.Value = .Value2
end with
Next start
Вы не используете внешний адрес для skumaestro в формуле, поэтому можно разумно предположить, что формула предназначалась для того же рабочего листа, который использовался выше.
Dim skumaestro As Range, addr1 as string, addr2 as string
With ThisWorkbook.Worksheets(2)
Set skumaestro = .Range(.Cells(lasthandlerow, 13), .Cells(lastskurow, 13))
addr1 = barcodes.Address(True, True, xlR1C1, external:=True)
addr2 = skucodes.Address(True, True, xlR1C1, external:=True)
with .Range("C" & Rows.count).End(xlUp).Offset(1).resize(count, 1)
.FormulaR1C1 = "=INDEX(" & addr1 & ",MATCH(" & skumaestro(1).Address(False, True, xlR1C1, False) & "," & addr2 & ",0))"
.Value = .Value2
end with
End With