通过将工作表名称添加为第一列来合并特定工作表

时间:2015-06-23 17:21:32

标签: excel vba excel-vba

我有很多表格,其名称以 _A _B 结尾。 enter image description here enter image description here enter image description here

我想合并所有以 _A _B 结尾的工作表。它们具有相同数量的列,但行数不同。但是,在合并时,我希望在合并工作表中的工作表的最后一行中一直重复工作表名称。结果: enter image description here

我希望结果保存在同一个工作簿中,但是在名为" merged"的工作表中。
here is the example sheet if you would like to work on

我的尝试:


Sub Merge_into_One()
    Dim ws As Worksheet
    Dim TargetRow As Long

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

    TargetRow = 1
    For Each ws In ActiveWorkbook.Sheets
        With ws
            If .Name Like "*" & strSearch & "_A" Or _
              .Name Like "*" & strSearch & "_B" Then
                .Range("A1:C99").Copy
                With Worksheets("Merged").Cells(TargetRow, 1)
                    .PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                    End With
                TargetRow = TargetRow + 99
            End If
        End With
    Next ws

    Application.CutCopyMode = False
    Application.ScreenUpdating = True

End Sub

但是在这里,我需要99行,假设我的行不会超过这个数字。但是,我希望获得与每张纸中显示的行数完全相同的行数,而不是更多。在这里,我不能将工作表的名称放在第一列,并重复它直到同一张纸的最后一击。

1 个答案:

答案 0 :(得分:0)

未经测试。编辑:哎呀我忘记了一些似乎。

* {margin: 0; padding: 0;}

header {
 position: fixed;
 width: 100%;
 height: 50px;
 background-color: rgba(0,0,0,0.5);
 text-align: center;
 top: 0px;
 z-index: 2;
}

nav li{
    display: inline-block;
    padding: 15px 30px 0px 0;
    font-weight: bold;
    font-size: 1.1em;}

#bgimg {
 display: table;
 position: relative;
 background-image: url(https://unsplash.imgix.net/photo-1424746219973-8fe3bd07d8e3?fit=crop&fm=jpg&h=725&q=75&w=1050);
 width: 100%;
 max-width: 1900px;
 height: 800px;
 background-position: center;
 margin: 0 auto;
    margin-top: 50px;
}


#textDiv {
    display: table-cell;
    height: 100%;
    text-align: center;
    vertical-align: middle;
}