在一个新工作表中从多个工作表收集数据

时间:2020-09-22 09:19:16

标签: excel vba

我试图将来自AG1列的数据附加到一个新工作表中的多个工作表上。
(例如:工作表1到A列,工作表2到B列,等等。)

Sub Macro1()
'
' Macro1 Macro
'

'
    Sheet1.Activate
    Range("AG2:AG5000").Select
    Selection.Copy
    Sheets("Try").Select
    Range("A1").Select
    ActiveSheet.Paste
    
    Sheets2.Activate
    Range("AG2:AG5000").Select
    Selection.Copy
    Sheets("Try").Select
    Range("B1").Select
    ActiveSheet.Paste
End Sub

到目前为止,我只能使用“记录宏”中的宏。


问题是:
(1)张数总是不同的,
(2)每张纸的名称总是不同的。

2 个答案:

答案 0 :(得分:0)

尝试以下代码。

Sub CopyFromMultiple()
Dim sh As Worksheet
Dim pColumn As Long

pColumn = 1
    
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "Try" Then
            sh.Range("AG2:AG5000").Copy Sheets("Try").Cells(1, pColumn)
            pColumn = pColumn + 1
        End If
    Next

End Sub

答案 1 :(得分:0)

请尝试以下方法:

Sub testCollectingColData()
 Dim sh As Worksheet, shTr As Worksheet, arr As Variant, colNo As Long
 
 Set shTr = Worksheets("Try")
 For Each sh In ActiveWorkbook.Sheets
    If sh.Name <> shTr.Name Then
        colNo = colNo + 1
        arr = sh.Range("AG2:AG5000").Value
        shTr.Range(shTr.cells(1, colNo), shTr.cells(5000 - 1, colNo)).Value = arr
    End If
 Next
End Sub