VBA代码抛出错误:运行时错误1004范围类的自动填充方法失败

时间:2016-08-09 18:09:40

标签: excel vba excel-vba excel-formula excel-2010

我有以下VBA代码。

根据“实体”表中的值,它必须在“贡献表”中自动填充。

当E_Count大于1时,它正常工作。但是当E_Count为1时,它会在最后一行代码中抛出Error,如下所示: 运行时错误1004范围类的自动填充方法失败

'Autofill 
Dim MaxRow As Integer
Dim E_Count As Integer
Dim ii As Integer
Dim jj As Integer

MaxRow = Worksheets("Contribution").UsedRange.Rows.Count
E_Count = Worksheets("Entities").UsedRange.Rows.Count - 4

Worksheets("Contribution").Range("F5:G5").Copy Worksheets("Contribution").Range("F6:G" & MaxRow)

Worksheets("Contribution").Range("H4:XFD1048576").Clear

Worksheets("Contribution").Range("G4:G" & MaxRow).AutoFill Destination:=Worksheets("Contribution").Range(Worksheets("Contribution").Cells(4, 7), Worksheets("Contribution").Cells(MaxRow, 6 + E_Count))

包含2个实体的实体表: enter image description here

在“开始”按钮点击之前的贡献表: enter image description here 这里VBA代码使数据库调用填充到E列。这就像这里的模板。

点击开始按钮后的贡献表: enter image description here

此处在单击“开始”按钮时调用VBA代码。根据实体开始时指定的实体,它必须像在贡献表中那样透视这些实体并自动填充为100%,因为它将在第一个单元格中,直到任何使用的数据范围为止。

有什么想法?

感谢您的时间。

谢谢, 丽塔

1 个答案:

答案 0 :(得分:1)

可能有很多因素影响到这一点
1。您确定要使用usedrows.count吗?请记住,其中的空白不计算在内。
2。如果您自动填充一系列大小1 excel将导致错误,如果是on error resume next将起作用,但请记住,您的数据可能是一个,它不会自动填充 - 从g4自动填充的内容:g4例如? - 如果这应该是输入错误,应该像它一样处理。
3。单元格不存在(当错误显示时你调试了E_count吗?如果它" -6"会发生什么?