从C#中的Excel操作 – 设置ActiveCell?

我目前正在尝试将一些VB6macros移到C#应用程序中,而我在使用C#设置活动单元格时遇到了问题。

在VB6中它简单地说:

ActiveSheet.Range("L1").Select 

有谁知道C#等价物是什么?

提前欢呼。

以下是一段代码示例:

  Excel.Worksheet sht = (Excel.Worksheet)ActiveSheet; sht.Cells[3, 3] = "HELLO"; 

你也可以捕捉范围:

  Excel.Range rng = (Excel.Range)sht.Cells[3, 3]; 

我相信你只是select方法像以前一样select一个范围,但我没有testing过这个。

  rng.Select(); 

你可以明显地简化这些并且把这些陈述连在一起,并且正确的投射。 我不想冒这个猜测,因为我没有从我这里打开VSTO项目。

编辑

你也应该能够使用get_Range从表单中获取一个范围:

  rng = sht.get_Range("A1", Type.Missing); 

VSTO往往会在大部分时间返回对象,因此需要强制转换,但是get_Range是个例外。 有人可能会纠正我,因为我不是VSTO的大用户(当谈到Excel时,VBA仍然很难)。