什么是C#中的等效范围函数(VBA)

时间:2019-01-15 19:37:51

标签: c# office-interop

我正在将VBA迁移到C#的过程中。我不知道如何使用或在C#中等效。让我向您展示代码行:

Range("U1:U" & LastRow).FormulaR1C1 = "=if(rc[-1]=""" & qyyyy & """,rc[-15],rc[-14])"

1 个答案:

答案 0 :(得分:0)

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])";

...使用\转义引号。那也可以,但是对我来说,阅读起来有点混乱。对于习惯于某些语言的人可能会更好。