从目标工作簿中的工作表复制动态范围,并在单独的工作表中粘贴到新工作簿

时间:2019-05-20 14:45:55

标签: excel vba

我尝试更改一些代码,这些代码将所有工作表复制并粘贴到新工作簿中。

问题是我只希望特定区域全部以A5开始,但是最后一行和最后一行是动态的,并且不断变化。

理想情况下,我想将每个范围复制到批处理评估器中的新工作表中,并保持源工作表名称的唯一区别在于我要将范围复制到新工作表的A1中。

  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

0 个答案:

没有答案