При наборе этой строки…
Worksheets("Report").Cells(8,3).Value="='DATA'!B"&lRow-2&"*'DATA'!D"&lRow-2
… в редакторе убедитесь, что у вас есть пробелы в правильных местах:
Worksheets("Report").Cells(8, 3).Value = "='DATA'!B" & lRow - 2 & "*'DATA'!D" & lRow - 2
Интервал необходим, потому что &
имеет 3 различные значения:
Без пробела: объявить число типа Long
:
2&
означает, что 2
имеет тип Long
.
(также см. Объявление переменных ).
С пробелами: конкатенация двух строк:
&
с пробелами означает конкатенацию строк, например. TotalString = String1 & String2
(также см. & - Оператор )
&H
с указанием шестнадцатеричного числа: Пример &HF
означает шестнадцатеричное F
и Debug.Print &HF
выведет 15, которое является шестнадцатеричным F
, преобразованным в десятичное число.