Excel 使用AutoFill提示“类Range的AutoFill方法无效”

 

  今天遇到一个神奇的问题,之前一直使用很好的代码突然报错:“类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,两个区域不能完全相同。

  

 

  附:AutoFill说明

摘自:http://www.feiesoft.com/vba/excel/xlmthautofill.htm

对指定区域中的单元格进行自动填充。Variant 类型。

expression.AutoFill(Destination, Type)

expression   必需。该表达式返回“应用于”列表中的对象之一。

Destination   Range对象类型,必需。要填充的单元格。目标区域必须包括源区域。

Type  XlAutoFillType 类型,必需。指定填充类型。

XlAutoFillType 可为以下 XlAutoFillType 常量之一。
xlFillDays
xlFillFormats
xlFillSeries
xlFillWeekdays
xlGrowthTrend
xlFillCopy
xlFillDefault default
xlFillMonths
xlFillValues
xlFillYears
xlLinearTrend
如果省略本参数或将本参数指定为 xlFillDefault,则 Microsoft Excel 将依据源区域选择最适当的填充方式。

 

posted @ 2016-05-12 16:55  环游世界  阅读(11272)  评论(0编辑  收藏  举报