1

问题:我想设置一个按钮,允许用户在他们正在处理的活动工作表中添加一行。在后台,我希望电子表格在与添加的工作簿相同的位置的同一工作簿的另一张工作表中添加一行。(这两张表仅与具有上个月信息的非活动工作表相同)我需要这样做的原因是因为活动工作表正在从非活动工作表中提取数据,并且我想保持相同的行数两张表的数据都在同一行中,因此它将提取正确的数据。

我还添加了从选择行复制公式,因此用户不需要手动复制,我认为这就是导致问题的原因。

关于如何清除错误的任何想法:

运行时错误“1004”:
Range 类的 PasteSpecial 方法失败

了解我在MS Excel VBA 中使用的代码如何在当前工作表和其他三个工作表中插入一行

我的代码

Sub AddRow()
'
' Row Macro


    ActiveWorkbook.Names.Add Name:="CopyRow", RefersToR1C1:=Rows(ActiveCell.Row)
    
    Range("CopyRow").Select
    
    Selection.Copy
    
    Dim Lst As Long

    Lst = ActiveCell.Row

    Worksheets("SOV Detailed Breakdown").Rows(Lst).Insert
    Worksheets("Previous Application").Rows(Lst).Insert
 
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False


    ActiveWorkbook.Names("CopyRow").Delete

End Sub
4

1 回答 1

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
于 2013-11-14T22:39:37.583 回答