宏复制并粘贴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
使用下面的代码。希望它能工作。
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
由于变压器 - 这工作然而似乎只标题行1复制反正这可能复制并粘贴整列?尽管欢呼。 – Mortend 2013-05-10 11:03:22
欢迎。它可以做...看到我的另一个答案相同。 – Transformer 2013-05-10 11:35:56
感谢您的帮助。 – Mortend 2013-05-10 13:40:30