2016-03-28 9 views
-2

Wie legen Sie diese Zeilen in eine Zeile?Wie legen Sie diese Zeilen in eine Zeile?

1,2,3,4 ...... 26 B2, C2, D2, ....... Z2

Sheets("1").Range("B2:B300").Copy Sheets("Result").Range("B2") 
Sheets("2").Range("B2:B300").Copy Sheets("Result").Range("C2") 
Sheets("3").Range("B2:B300").Copy Sheets("Result").Range("D2") 
Sheets("4").Range("B2:B300").Copy Sheets("Result").Range("E2") 
Sheets("5").Range("B2:B300").Copy Sheets("Result").Range("F2") 
. 
. 
. 
Sheets("25").Range("B2:B300").Copy Sheets("Result").Range("Y2") 
Sheets("26").Range("B2:B300").Copy Sheets("Result").Range("Z2") 
+0

Ihnen hilft Was Sie nur eine einzige Zeile bedeuten sie? Eine einzelne Reihe? – kojow7

+0

Bitte fügen Sie etwas mehr Details hinzu, was Sie wollen. Sie sagen, dass ein Bild 1000 Worte wert ist, daher kann ein Screenshot-Beispiel helfen, wenn es schwer zu erklären ist. – David

Antwort

0

a Do for-Schleife:

For x = 1 to 26 
    Sheets(Cstr(x)).Range("B2:B300").Copy Sheets("Result").Cells(2,x+1) 
next x 
+0

Vielen Dank. Die obige Schleife funktionierte wie erwartet. –

+0

@ M.GOW Ich bin froh, dass Sie helfen können, indem Sie auf das grau/grüne Häkchen in der Antwort klicken. –

0

ich denke, die folgende Methode

Sub GetCopyOfColumnB() 
Dim ws As Worksheet 
Dim resultPageName As String 
Dim isTherePage As Boolean 
Dim i As Integer 


resultPageName = "Result" 
isTherePage = False 

For Each ws In ActiveWorkbook.Sheets 
    If ws.Name = resultPageName Then 
     isTherePage = True 
    End If 
Next 
If isTherePage = False Then 

    Worksheets.Add After:=Sheets(ActiveWorkbook.Sheets.Count) 

    Worksheets(Worksheets.Count).Name = resultPageName 
End If 
i = 1 
For Each ws In ActiveWorkbook.Sheets 
    If ws.Name <> resultPageName Then 
     ws.Range("B2:B300").Copy Sheets("Result").Cells(2, i) 
     i = i + 1 
    End If 
Next 
End Sub 
Verwandte Themen