2016-09-07 18 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