Excel VBAmacros – 范围类的复制方法失败,范围类的插入方法失败

我写了一个macros,根据inputstring复制和插入不同位置的行或列。 复制和插入位置由电子表格中的命名范围定义。

如果我想在同一部分添加几列,一切都很好。 如果我在一节添加一列,那么想在另一节添加一列,我得到两个错误之一: Range类的复制方法失败Range类的 Insert方法失败

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

码:

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 

您的代码缺less工作表名称。 例如 –

 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 

另外要注意的是,如果您的偏移量强制数据被粘贴在表格之外,这将导致错误。 例如,如果您命名的范围是A1:A10,并且您执行了偏移(0,-1),则表单会closures并导致错误。

希望这可以帮助。