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