来自C#的Excel操作 - 设置ActiveCell?

Joe*_*eez 3 c# vb6 excel interop visual-studio-2010

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

在VB6中它简单地说:

ActiveSheet.Range("L1").Select
Run Code Online (Sandbox Code Playgroud)

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

提前干杯.

Joe*_*win 5

这是一段代码示例:

        Excel.Worksheet sht = (Excel.Worksheet)ActiveSheet;
        sht.Cells[3, 3] = "HELLO";
Run Code Online (Sandbox Code Playgroud)

您还可以捕获范围:

        Excel.Range rng = (Excel.Range)sht.Cells[3, 3];
Run Code Online (Sandbox Code Playgroud)

我相信你只需像以前一样选择一个范围,虽然我没有测试过这个.

        rng.Select();
Run Code Online (Sandbox Code Playgroud)

显然,您可以使用正确的强制转换简化此操作并将这些语句链接在一起.我不想在这里冒险,因为我没有从我这里开一个VSTO项目.

编辑

您还应该能够使用get_Range以下方式从工作表中获取范围:

        rng = sht.get_Range("A1", Type.Missing);
Run Code Online (Sandbox Code Playgroud)

VSTO倾向于在大多数时间返回对象,需要强制转换,但是get_Range例外.有人可能能够纠正我,因为我不是VSTO的大用户(当谈到Excel时仍然是VBA顽固的).