zoukankan      html  css  js  c++  java
  • 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 将依据源区域选择最适当的填充方式。
  • 相关阅读:
    vsCode_1.27.2
    前端图片压缩(纯js)
    chrome浏览器表单自动填充默认样式(背景变黄)-autofill
    前端Table数据导出Excel使用HSSFWorkbook(Java)
    linux下安装python3.6
    linux 下启动tomca慢问题
    linux下nginx配置ssl证书(https)
    spring+mybatis多数据源
    css3实现小箭头,各种图形
    Windows 环境搭建Redis集群(win 64位)
  • 原文地址:https://www.cnblogs.com/huanyou/p/5486356.html
Copyright © 2011-2022 走看看