Excel VBA宏 - 范围类的复制方法失败&范围类的插入方法失败

时间:2014-12-15 20:18:59

标签: excel vba excel-vba

我根据输入字符串编写了一个宏来复制和插入不同位置的行或列。复制和插入位置由电子表格中的命名范围定义。

如果我想在同一部分添加多个列,一切都很有效。如果我在一个部分中添加一个列,然后想要在另一个部分中添加一个列,我会收到两个错误之一: Range类的复制方法失败 OR Range类的插入方法失败

我还没有弄清楚为什么复制方法有时会抛出错误,有时候却没有。任何帮助将不胜感激。

代码:

    Sheets("TL Master").Range("Insert" & strAddType).Copy

        'Offset for row/column
        If strRowColumn = "row" Then
            'Row = add value above
            Range("Insert" & strAddType).Insert Shift:=xlDown
            Range("Add" & strAddType & "ButtonCell").Offset(-4, 0).Value = strNewName
        Else
            'Column = add value left
            Sheets("TL Master").Range("Insert" & strAddType).Insert Shift:=xlToRight
            Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Value = strNewName
            If strAddType = "Machine" Then Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Interior.Color = clrComplexityColor

        End If

1 个答案:

答案 0 :(得分:2)

您的代码缺少工作表名称。例如 -

Sheets("TL Master").Range("Insert" & strAddType).Copy

    'Offset for row/column
    If strRowColumn = "row" Then
        'Row = add value above
        Sheets("TL Master").Range("Insert" & strAddType).Insert Shift:=xlDown
        Sheets("TL Master").Range("Add" & strAddType & "ButtonCell").Offset(-4, 0).Value = strNewName
    Else
        'Column = add value left
        Sheets("TL Master").Range("Insert" & strAddType).Insert Shift:=xlToRight
        Sheets("TL Master").Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Value = strNewName
        If strAddType = "Machine" Then Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Interior.Color = clrComplexityColor

    End If

我要注意的另一件事是,如果你的Offset强制将数据粘贴到工作表之外,这将导致错误。例如,如果您的命名范围是A1:A10而您执行和偏移(0,-1),那么这将不在工作表中并导致错误。

希望这有帮助。