宏复制并粘贴5列最后一列问题

问题描述:

我刚刚写了一个宏来查找包含数据的最后5列,然后复制并粘贴到最后一列前面。我建立了一个伪文档在这个宏,这样不会损坏我的当前文件,并得到了宏观做工精细与下面的代码:宏复制并粘贴5列最后一列问题

Sub CopyLastFiveRows() 

LastColumn = Sheets("Sheet2").Cells.Find("*", [a1], , , xlByColumns, xlPrevious).Column 
On Error GoTo 0 

Sheets("Sheet2").Columns(LastColumn - 4).Resize(, 5).Select 
Selection.Copy 

' Enter the rest of your paste code here 

Sheets("Sheet2").Columns(LastColumn + 1).Select 
ActiveSheet.Paste 

End Sub 

当我剪切和粘贴在上面,如果我在实际工作文件,它工作正常,如果数据选项卡的名称是“Sheet2”,但是如果Im将选项卡名称更改为“NFG”并在上面的宏中将此全部替换为“Sheet2”,则会出现“运行时错误”1004“Range类的Select方法失败”。有点困惑。如果有人能帮助我,那会很棒。谢谢。

注 - 我忘了提及的其他事情是,我要将这个宏分配给工作簿的前面板上的按钮。我认为这可能会导致这个问题,因为这是我可以在我测试过的文档之间想到的唯一变量。

使用下面的代码复制过去的五列

的所有行
Sub CopyLastFiveColumns() 

    Dim lngLastRow  As Long 

    With ThisWorkbook.Worksheets("NFG") 
     lngLastRow = .Range("A" & .Rows.Count).End(xlUp).Row 
     .Cells(1, .Columns.Count).End(xlToLeft).Offset(, -4).Resize(lngLastRow, 5).Copy .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1) 
    End With 

End Sub 
+0

感谢您的帮助。 – Mortend 2013-05-10 13:40:30

使用下面的代码。希望它能工作。

Sub CopyLastFiveColumns() 

     With ThisWorkbook.Worksheets("NFG")     
      .Range(.Cells(1, .Columns.Count).End(xlToLeft), .Cells(1, .Columns.Count).End(xlToLeft).Offset(, -4)).Copy .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1) 
     End With 

End Sub 
+0

由于变压器 - 这工作然而似乎只标题行1复制反正这可能复制并粘贴整列?尽管欢呼。 – Mortend 2013-05-10 11:03:22

+0

欢迎。它可以做...看到我的另一个答案相同。 – Transformer 2013-05-10 11:35:56