复制最后两列并插入其左侧

时间:2015-07-21 18:32:01

标签: vba excel-vba excel

我无法使用工作表中的数据复制最后两列,然后在它们的左侧插入相同的列。这是我的代码到目前为止,它复制了正确的列,但它只是将它们粘贴到右边。

Sub GlobalPerformNewMonths()

Dim lngLastRow     As Long

With ThisWorkbook.Worksheets("Global Supplier Performance")
     lngLastRow = .Range("A" & .Rows.Count).End(xlUp).Row
     .Cells(1, .Columns.Count).End(xlToLeft).Offset(,Resize(lngLastRow,Copy .Cells(1, .Columns.Count).End(xlToLeft).Offset(, -2)
     Columns("D:AZ").ColumnWidth = 18.43
     Application.CutCopyMode = False
End With
End Sub

2 个答案:

答案 0 :(得分:1)

尝试选择所需数据的完整列。选择它们,然后将它们插入所需列的左侧。

Range("d:e").Select
Selection.Copy
Columns("C:C").Select
Selection.Insert Shift:=xlToRight

答案 1 :(得分:0)

您必须从找到的最后一列和Range.Resize转移到适当的单元格。为此,我建议使用Range.Cells property使用数字特定寻址。

Sub GlobalPerformNewMonths()
    Dim lr As Long, lc As Long

    With ThisWorkbook.Worksheets("Global Supplier Performance")
         lr = .Cells(Rows.Count, 1).End(xlUp).Row
         lc = .Cells(1, Columns.Count).End(xlToLeft).Column
         With .Cells(1, lc - 1).Resize(lr, 2)
            .Copy
            .Insert Shift:=xlToRight
         End With
         .Columns("D:AZ").ColumnWidth = 18.43
         Application.CutCopyMode = False
    End With
End Sub