gpt4 book ai didi

c# - 工作表 get_Range 抛出异常

转载 作者:IT王子 更新时间:2023-10-29 04:17:37 29 4
gpt4 key购买 nike

我正在使用 C# 来操作 Excel 工作表。以下两段代码应该工作相同,但一段有效,另一段抛出异常。我想知道为什么。

这个有效:

oRange = (Excel.Range)oSheet.get_Range("A1","F1");
oRange.EntireColumn.AutoFit();

这会引发异常:

oRange = (Excel.Range)oSheet.get_Range(oSheet.Cells[1, 1],oSheet.Cells[4,4]);
oRange.EntireColumn.AutoFit();

异常(exception):

RuntimeBinderException occurred. "object" does not contain a definition for 'get_Range'

oSheet实例化如下:

Excel.Worksheet oSheet = new Excel.Worksheet();

我应该以不同的方式实例化两者吗?

最佳答案

看起来异常是从用作 参数的 oSheet.Cells[1, 1]oSheet.Cells[4, 4] 抛出的获取范围

应用以下内容,不会抛出异常:

Excel.Range c1 = oSheet.Cells[1, 1];
Excel.Range c2 = oSheet.Cells[4, 4];
oRange = (Excel.Range)oSheet.get_Range(c1, c2);
oRange.EntireColumn.AutoFit();

因此,它可能与 oSheet.get_Range 功能有关。它接收一个对象作为参数,因此它可能会尝试在参数上调用 get_Range 方法以接收内部单元格,然后从 Range 向上转换到对象 done编译器可能会隐藏方法调用。

如果您需要按行/列定义单元格 - 尝试使用上述方法。

关于c# - 工作表 get_Range 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6546785/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com