我使用下面的VBA代码复制工作表中某个按钮上方的行,并在该按钮处于打开状态的行的正上方插入该副本。其目的是为用户插入新行,以将步骤信息添加到项目管理文档中。
由于某种原因,当我在此复制行上方的一行中添加信息时,在指示的行上出现错误。错误是
运行时错误'1004:范围类的插入方法失败。
如果结束并再次按下按钮,我会得到
运行时错误'1004':无法获取Button类的TopLeftCell属性。
如果我关闭Excel并重新打开它,则该按钮可以正常工作。通常,我需要添加所有行,然后输入数据,但是当我添加新行时,它会再次出现这一系列错误。
这是有原因的吗?还是有更好的代码惯例可以帮助我避免此问题?
此外,我刚刚注意到,似乎必须打开另一个工作表才能发生这些错误模式。
Sub rowselect()
Dim b As Object, cs As Integer
Dim Row2 As Integer
Dim Row As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell ' 2nd error when code attempted again. Excel must be shut down for code to run properly
Row = .Row - 1
Row2 = Cells(Row, "e")
End With
Rows(Row).Select
Selection.Copy
Selection.Insert shift:=xlDown 'First error thrown here
Cells(Row + 1, "e") = Row2 + 1
Selection.EntireRow.Hidden = False
End Sub