Private Sub LastProverka_Click()
Set wsplan = ActiveWorkbook.Sheets("План")
Set ws331 = ActiveWorkbook.Sheets("331")
Set ws332 = ActiveWorkbook.Sheets("332")
Set ws333 = ActiveWorkbook.Sheets("333")
10: If Left(wsplan.Cells(i, 2).Value, 10) = Left(ws331.Cells(j, 1).Value, 10) Then s=1
20: If Left(wsplan.Cells(i, 2).Value, 10) = Left(ws332.Cells(j, 1).Value, 10) Then s=2
30: If Left(wsplan.Cells(i, 2).Value, 10) = Left(ws333.Cells(j, 1).Value, 10) Then s=3
Как выполнить в строках 10,20,30 числа 331, 332, 333 перебором в цикле. т.е. примерно вот так:
For X= 331 to 333
If Left(wsplan.Cells(i, 2).Value, 10) = Left(wsX.Cells(j, 1).Value, 10) Then s=X-330
Next X
Такой возможности в VBA нет: нельзя составить имя переменной из частей, используя знак "&" или "+".
Нужно что-то другое придумать.