Скопируйте динамический диапазон из листов в целевой книге и вставьте в новую книгу на отдельных листах - PullRequest
0 голосов
/ 20 мая 2019

Я попытался изменить некоторый код, который копировал все рабочие листы и вставлял их в новую рабочую книгу в новый лист.

Проблема в том, что мне нужны только определенные области, которые начинаются с A5, но последняя строка и столбецдинамично и постоянно меняется.

В идеале я хотел бы скопировать каждый диапазон в новый лист в пакетном редакторе и оставить только разницу имен исходных листов, поскольку я хочу скопировать диапазон в А1 новых листов.

  Sub CopyWorkbook()
    Dim sh As Worksheet, wb As Workbook, sb As Workbook
    Dim lRow As Long
    Dim lCol As Long
    Dim curName As String
    Dim copy_value As Range

    ' get reference to both workbooks
    Set sb = Workbooks("Current VA Rating Structure_test")
    Set wb = Workbooks("rater_tables")

    ' loop through worksheets in "Rating Structure" workbook
    For Each sh In sb.Worksheets

        ' get the max row & col of the worksheet, as well as its name
        lRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row
        lCol = sh.Cells(lRow, 1).End(xlToRight).Column
        curName = sh.Name

        ' add a worksheet to the "Rate Tables" workbook and set its name
        wb.Worksheets.Add(After:=Worksheets(1)).Name = curName

        ' copy the range from the old sheet to the new one
        sh.Range(sh.Cells(5, 1), sh.Cells(lRow, lCol)).Copy wb.Worksheets(curName).Range("A1")
    Next sh
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...