今天遇到一个神奇的问题,之前一直使用很好的代码突然报错:“类Range的AutoFill方法无效”,在网上搜索了一番,感觉没有一个与我遇到的情况相同的。debug,查看一下代码,发现程序里,AutoFill前后指定的是相同的区域。不知道是不是因为这个原因,只能自己手动测试到底什么情况才会产生这个提示了。
写了一段测试代码:
Worksheet sheet = Helper.GetActiveSheet(); Range b = sheet.Cells[1, 1]; Range end = sheet.Cells[3, 1]; Range a = sheet.Range[b, end]; b.Value2 = 1; b.AutoFill(a, XlAutoFillType.xlFillSeries);
上面的代码可以执行成功。
修改上面的测试代码,看看什么情况会报出类似的错误。将最后一行修改为:
a.AutoFill(a, XlAutoFillType.xlFillSeries);
这回代码报错了,和我遇到的情况类似,会不会是因为这个a区域包含的范围太大了呢?那再试一下,将代码修改为:
b.AutoFill(b, XlAutoFillType.xlFillSeries);
居然还报错。OK,可以确认了。Range1.AutoFill(Range2,*),Range2要包含Range1,两个区域不能完全相同。
时间: 2024-11-03 07:11:01