2016-09-07 17 views
1

Ich habe versucht, bestimmte Spalten aus einer Excel-Tabelle aus einer Vielzahl von unerwünschten Spalten zu extrahieren. Ich habe das folgende Skript läuft:Excel spezifische Spalte Extraktion

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 

Diese Formel extrahiert die Daten jedoch kommt die Ausgabe aus wie:

Column A Column C Column L Column BI 

Wenn der Ausgang ich brauche, ist:

Column A Column BI Column C Column L 

Wie kann ich den Code ändern, um die gewünschte Ausgabe zu erhalten?

+0

A [Union] (https://msdn.microsoft.com/en-us/library/office /ff834621.aspx) von Zellen wird sich in eine Anordnung von links nach rechts/von oben nach unten homogenisieren. Sie benötigen mehrere Vorgänge, wenn Sie das Ziel restrukturieren möchten. – Jeeped

+0

@Sage Mohan können Sie meinen Code (unten) versuchen, es ist nicht ideal, aber es wird die Arbeit für Sie erledigt –

+0

@ShareRado der Code funktioniert. Ich habe es heute getestet. Vielen Dank. –

Antwort

0

Es ist schnell (und schmutzig), aber der folgende Code erhalten Sie, was Sie wollen:

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