2015-07-21 40 views
1

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

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 

回答

1

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

Range("d:e").Select 
Selection.Copy 
Columns("C:C").Select 
Selection.Insert Shift:=xlToRight 
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 
相关问题