我之前已经问过这个,但似乎无法弄清楚如何获取我用来在评论中干净利落地显示的代码,以便人们可以阅读它。所以转发到这里。
问题:我想设置一个按钮,允许用户在他们正在处理的活动工作表上添加一行。在后台,我希望电子表格在同一工作簿中的另一个工作表中添加一行,与添加的工作簿位于同一位置。 (两张纸只与上一个月有非活动工作表相同)我之所以需要这样做是因为Active工作表从非活动工作表中提取数据而我希望保持相同的行数两个工作表都有相同行中的数据,因此它将提取正确的数据。 感谢您的任何建议!
我添加了从选择行复制公式,因此用户不需要手动复制,我认为这是造成问题的原因。
关于如何清除错误的任何想法:
运行时错误'1004': Range类的PasteSpecial方法失败
了解我在MS Excel VBA how to insert a row in the current worksheet and three others
使用的代码我的代码
Sub AddRow() “ '行宏
ActiveWorkbook.Names.Add Name:="CopyRow", RefersToR1C1:=Rows(ActiveCell.Row)
Range("CopyRow").Select
Selection.Copy
Dim Lst As Long
Lst = ActiveCell.Row
工作表(“SOV详细分解”)。行(Lst)。插入 工作表(“上一个应用程序”)。行(Lst)。插入
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWorkbook.Names("CopyRow").Delete
End Sub
答案 0 :(得分:0)
错误会引发PasteSpecial
方法,这是不必要的。当剪贴板像这样填充时,下一个Insert
语句会自动执行粘贴操作。
我整理它以摆脱我认为你真的不需要的Name
分配。
Sub AddRow() ' ' Row Macro
Dim Lst As Long
Rows(ActiveCell.Row).Copy
Lst = ActiveCell.Row
Worksheets("SOV Detailed Breakdown").Rows(Lst).Insert
Worksheets("Previous Application").Rows(Lst).Insert
End Sub