Excel 使用AutoFill提示“类Range的AutoFill方法无效”
今天遇到一個神奇的問題,之前一直使用很好的代碼突然報錯:“類Range的AutoFill方法無效”,在網上搜索了一番,感覺沒有一個與我遇到的情況相同的。debug,查看一下代碼,發(fā)現(xiàn)程序里,AutoFill前后指定的是相同的區(qū)域。不知道是不是因為這個原因,只能自己手動測試到底什么情況才會產生這個提示了。
寫了一段測試代碼:
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);
上面的代碼可以執(zhí)行成功。
修改上面的測試代碼,看看什么情況會報出類似的錯誤。將最后一行修改為:
a.AutoFill(a, XlAutoFillType.xlFillSeries);
這回代碼報錯了,和我遇到的情況類似,會不會是因為這個a區(qū)域包含的范圍太大了呢?那再試一下,將代碼修改為:
b.AutoFill(b, XlAutoFillType.xlFillSeries);
依然報錯。OK,可以確認了。Range1.AutoFill(Range2,*),Range2要包含Range1,兩個區(qū)域不能完全相同。
附:AutoFill說明
摘自:http://www.feiesoft.com/vba/excel/xlmthautofill.htm
對指定區(qū)域中的單元格進行自動填充。Variant 類型。
expression.AutoFill(Destination, Type)
expression 必需。該表達式返回“應用于”列表中的對象之一。
Destination Range對象類型,必需。要填充的單元格。目標區(qū)域必須包括源區(qū)域。
TypeXlAutoFillType 類型,必需。指定填充類型。
| XlAutoFillType 可為以下 XlAutoFillType 常量之一。 |
| xlFillDays |
| xlFillFormats |
| xlFillSeries |
| xlFillWeekdays |
| xlGrowthTrend |
| xlFillCopy |
| xlFillDefault default |
| xlFillMonths |
| xlFillValues |
| xlFillYears |
| xlLinearTrend |
| 如果省略本參數或將本參數指定為 xlFillDefault,則 Microsoft Excel 將依據源區(qū)域選擇最適當的填充方式。 |
總結
以上是生活随笔為你收集整理的Excel 使用AutoFill提示“类Range的AutoFill方法无效”的全部內容,希望文章能夠幫你解決所遇到的問題。