使用动态数组时的运行时错误1004

时间:2018-04-22 11:28:12

标签: excel vba

我在A列中有15个名字。在尝试ReDim并填充已经声明的数组,并将元素(名称)提取到E列时,下面的代码给了我打嗝说它是运行时错误1004(应用程序) - 定义或对象定义的错误)。

Dim f() as string

Private Sub CommandButton1_Click()
    Finalrow = Cells(Rows.Count, 1).End(xlUp).Row
    ReDim Preserve f(Finalrow - 1)

For i = 0 To Finalrow - 1
    f(i) = Sheet1.Cells(i, 1) ''''This line causes the glitch (error 1004)
Next

For i = 0 To Finalrow - 1
    Sheet1.Cells(i, 5) = f(i)
Next

End Sub

2 个答案:

答案 0 :(得分:2)

循环变量 i 以0开头;这会导致Cells()功能丧失。


(可能还有其他错误)

答案 1 :(得分:1)

这是学术活动吗?

如果没有,那么可以轻松使用:

Private Sub CommandButton1_Click()
Dim FinalRow As Long
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
Sheet1.Range("E1:E" & FinalRow).Value = Sheet1.Range("A1:A" & FinalRow).Value
End Sub