疑难解答:将多个工作表中的数据复制到VBA中的单个工作表中

时间:2018-02-25 12:46:45

标签: excel excel-vba vba

我有以下代码,目前有效,但不显示我想要的方式。我是VBA的新手,所以我在网上使用了这个模板。

它制作了一张名为" Archive"然后将我在其他40张纸上的所有数据打印到它上面。问题在于它从上到下读取。

Public Sub m()
    Dim lRow As Long
    Dim sh As Worksheet
    Dim shArc As Worksheet
    Set shArc = ThisWorkbook.Worksheets("Archive")
    For Each sh In ThisWorkbook.Worksheets
        Select Case sh.Name
            Case Is <> "Archive"
                lRow = shArc.Range("A" & Rows.Count).End(xlUp).Row
                sh.Range("B1:M247").Copy 
                _Destination:=shArc.Range("A" & lRow)
        End Select
    Next
    Set shArc = Nothing
    Set sh = Nothing
End Sub

我希望宏粘贴数据,以便从左到右读取数据。

TLDR:代码收集数据,但全部垂直粘贴。我希望它水平粘贴。任何人都可以改变它吗?

1 个答案:

答案 0 :(得分:1)

所以我尝试了更多的东西并编辑了之前的一个回复。这似乎适用于我的目的

Public Sub m()
    Dim lCol As Long
    Dim sh As Worksheet
    Dim shArc As Worksheet
    Set shArc = ThisWorkbook.Worksheets("Archive")
    For Each sh In ThisWorkbook.Worksheets
        Select Case sh.Name
             'do nothing
        Case Else
            lCol = shArc.Cells(1, shArc.Columns.Count).End(xlToLeft).Column
            sh.Range("B1:M247").Copy _
              Destination:=shArc.Cells(1, lCol + 13)
    End Select
Next
    Set shArc = Nothing
    Set sh = Nothing
End Sub