函数get_Range是否允许当前工作表之外的范围?

时间:2018-05-28 23:06:03

标签: c# excel vsto

我想知道是否有人遇到过这个问题,假设我们有以下代码:

Excel.Range vl_range = (Excel.Range)((Excel.Worksheet)Application.ActiveSheet).get_Range("A1");

这可以安全地返回A1的范围。但是,如果我们输入字符串"'新工作表'!$ C $ 1",则会出现HRESULT错误。

但是,这可以通过以下代码来解决:

Excel.Range vl_range = (Excel.Range)(Application.get_Range("'new sheet'!$C$1"));

这确实有效。现在我想知道我是否输入" A1"只是在最后一行代码中,它会自动假设我是指活动表吗?

有人可以向我解释,为什么这在VBA中似乎有所不同?我可以使用Range方法轻松定义范围,即使我在工作表中?

我的结论是正确的还是我在某处犯了一个可怕的错误?

1 个答案:

答案 0 :(得分:0)

对任何有兴趣的人。我已经测试了代码,如果我们使用:

Excel.Range vl_range = (Excel.Range)(Application.get_Range("C1"));

Excel会自动假定您指的是活动表。