如何将这些线条放在一条线上?

时间:2016-03-28 23:23:19

标签: vba

如何将这些行放入一行?

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")

2 个答案:

答案 0 :(得分:0)

执行for循环:

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

答案 1 :(得分:0)

我认为以下方法对您有帮助

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