2016-09-07 50 views
1

我一直在试图从许多不需要的列中提取Excel工作表中的某些列。我一直在运行下面的脚本:Excel专用列提取

Public Sub extractCol() 
    Set range1 = Range("A:A, BI:BI, C:C, L:L") 
    range1.Copy 
    Set newbook = Workbooks.Add 
    ActiveCell.PasteSpecial Paste:=xlPasteValues 
End Sub 

这个公式但是提取数据,输出出来为:

Column A Column C Column L Column BI 

当我需要的输出是:

Column A Column BI Column C Column L 

我如何更改代码以获得所需的输出?

+0

A [联盟](https://msdn.microsoft.com/en-us/library/office/cell834621.aspx)将自身均匀化为从左到右/从上到下的排列。如果你想重组目标,你需要多个操作。 – Jeeped

+0

@Sage Mohan你可以试试我的代码(下面),这不太理想,但它会为你完成工作案例 –

+0

@ShaiRado的代码工程。我今天测试了它。谢谢。 –

回答

0

它的快速(脏),但下面的代码会得到你想要的东西:

Public Sub extractCol() 

Dim newbook     As Workbook 
Dim ShtSource    As Worksheet 
Dim ShtDest     As Worksheet 

' modify Sheet 1 to your Source sheet name 
Set ShtSource = ThisWorkbook.Sheets("Sheet6") 

Set newbook = Workbooks.Add 

' modify Sheet 1 to your Destination sheet name 
Set ShtDest = newbook.Sheets("Sheet1") 

ShtSource.Columns("A:A").Copy Destination:=ShtDest.Columns(1) 
ShtSource.Columns("BI:BI").Copy Destination:=ShtDest.Columns(2) 
ShtSource.Columns("C:C").Copy Destination:=ShtDest.Columns(3) 
ShtSource.Columns("L:L").Copy Destination:=ShtDest.Columns(4) 

End Sub