【发布时间】:2021-06-09 07:38:01
【问题描述】:
我有一个复制和插入新行的按钮。这里的问题是我只能调用宏两次,然后它给我一个 400 错误。关于如何解决问题的任何建议?
Sub AddNewRow()
Dim r As Range
Set r = ActiveSheet.Buttons(Application.Caller).TopLeftCell
r.Offset(-2).EntireRow.Copy
r.Offset(-1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
r.Offset(-2).EntireRow.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub
*** 编辑 ***
我创建了一个删除按钮。只要我不创建超过 2 行,一切正常。当我按顺序创建 3 行时,它会崩溃。
Sub DeleteLastRow()
Dim r As Range
Set r = ActiveSheet.Buttons(Application.Caller).TopLeftCell
r.Offset(-2).EntireRow.Delete
Application.CutCopyMode = False
End Sub
编辑 在具有相同数据的同一文档中的另一张纸上进行了尝试。在那里它完美地工作。什么样的设置会搞砸这个 VBA?文档中没有其他 VBA。
编辑 问题解决了。 (XFC;1048574) 中有一些杂散的文本。删除文本后,该功能起作用了。
【问题讨论】:
-
似乎宏有效,但可能在同一个单元格上一次又一次地做同样的事情。
-
奇怪的是,我有多个按钮在不同的部分都做同样的事情,如果我按其中任何两个按钮一次或两次,它会给我 400 错误。他们在第三次印刷之前完美地完成了任务。
-
失败时会出现哪一行错误?
-
它只是给了我一个“400”。它没有显示任何细节