查找并复制/粘贴最后一列

时间:2015-05-19 09:52:23

标签: vba excel-vba range paste excel

我在插入新列并粘贴这些新列中最后一列的值时遇到问题。

到目前为止我得到的代码是

Sub Macro1()
Dim ws As Worksheet
Dim LC As Long

Set ws = ActiveWorkbook.Worksheets("TOT")
LC = ws.Cells(3, Columns.Count).End(xlToLeft).Column

ws.Columns(LC - 2).Insert
ws.Columns(LC - 2).Insert
ws.Columns(LC - 2).Insert
ws.Columns(LC + 1 & ":" & LC + 3).Copy
ws.Range(LC + 1 & "1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

我想在最后三个现有列的前面插入三个新列,并将最后三个现有列的值粘贴到三个新列中。这些区域没有合并的单元格。

3 个答案:

答案 0 :(得分:0)

必须在angular.module("userApp", ['ngAnimate']) 引用/对象上使用.listItem.ng-enter { opacity: 0; transition: all .5s ease; } .listItem.ng-enter-active { opacity: 1; } Copy方法。您正尝试在PasteSpecial引用上使用Range。试试这个:

Copy

您需要注意这种代码,因为插入列时lastColumn的值不会改变,因此可能会产生误导。

答案 1 :(得分:0)

试试这个:

Sub insertNew3Col()

Dim ws As Worksheet
Dim LK As Long

Set ws = ActiveWorkbook.Worksheets("TOT")
lc = ws.Cells(3, Columns.Count).End(xlToLeft).Column


ws.Range(Columns(lc - 2), Columns(lc)).Copy
ws.Columns(lc + 1).Insert Shift:=xlToRight
Application.CutCopyMode = False

End Sub

答案 2 :(得分:0)

谢谢大家,我不知道这个

  

必须在Range> reference / object上使用Copy和PasteSpecial方法。您正尝试在列引用上使用复制

我已按照以下方式重新安排了我的代码,这样就可以了解

Sub Macro1()
Dim ws As Worksheet
Dim LC As Long

Set ws = ActiveWorkbook.Worksheets("TOT")
LC = ws.Cells(3, Columns.Count).End(xlToLeft).Column

ws.Columns(LC - 2).Insert
ws.Columns(LC - 2).Insert
ws.Columns(LC - 2).Insert
ws.Range(Columns(LC + 1), Columns(LC + 3)).Copy
ws.Range(Columns(LC - 2), Columns(LC)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ws.Range(Columns(LC - 2), Columns(LC)).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False


End Sub