C# Excel VSTO:get_Range() 和 Range() 之间的区别

C# Excel VSTO: Difference between get_Range() and Range()

我想了解 Worksheet.Range() 和 Worksheet.get_Range() 之间的区别。取下面两行代码:

Globals.ThisWorkbook.Worksheets["Sheet1"].Range("A4").Value2 = "test";

这将在标记为 "Sheet1" 的工作表的 A4 单元格中打印 "test"。同样,

Globals.ThisWorkbook.Worksheets["Sheet1"].get_Range("A4").Value2 = "test";

应该会产生相同的结果,但我得到的是:

'System.__ComObject' does not contain a definition for 'get_Range

谁能解释一下何时以及如何使用 get_Range()?

有什么性能优势吗?

在 C# 代码中,属性 X 在后台生成名为 get_Xset_X 的方法。因此,get_Range("A4") 应该写成 Range["A4"]。有关示例,请参见 this MSDN document 中第一个示例中的代码。

我怀疑您会看到任何性能差异,尽管在大多数性能问题中答案是 "try it and compare times"。