Range("U1:U" & LastRow).FormulaR1C1 = $@"=if(rc[-1]=""{qyyyy}"",rc[-15],rc[-14])";
Во-первых, конкатенация строк - +
в C # против &
в VB.NET.
Во-вторых, вместо конкатенации используется интерполяция строк, потому что это избавляет нас от необходимости добавлять дополнительные кавычки для завершения строк.
Работает так:
var x = 1;
var y = $"The number is {x}.";
// y = "The number is 1."
$
указывает, что строка интерполирована, что означает, что {qyyyy}
преобразуется в строку.
@
перед строкой означает, что символы в строке не экранированы. Это позволяет нам использовать ""
в строке для представления одного "
. В противном случае мы должны были бы сделать это:
$"=if(rc[-1]=\"{qyyyy}\",rc[-15],rc[-14])";
... используя \
для кавычек. Это тоже работает, но мне немного сложнее читать. Для людей, привыкших к определенным языкам, это может быть лучше.