根据具有新标题名称的行创建新工作表

时间:2018-12-26 11:33:12

标签: excel excel-vba

我必须使用宏通过命名第一列值(活动单元格)来创建新工作表,并且需要提供不同的标题名称,并且特定的列值需要复制到新创建的工作表中。

注意:一些列值需要从源工作表复制到新工作表,并且需要为新工作表的活动单元格第一列值指定名称。它不适用于所有列值,我的意思是名称应仅是活动单元格值。

根据所附的屏幕快照,我需要创建项目名称列的值,我们需要创建新的工作表(第二个屏幕快照需要输出)。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

这样的事情应该是目标:

Dim lrs as long, lrd as long, i as long
lrs = Sheets("Summary").cells(Sheets("Summary").Rows.Count,1).end(xlup).row
With Sheets("EMDN_SW_Project") 'longer to type than "Summary"
    for i = 2 to lrs 'assumes header in row 1
        'if statement if needed
            lrd = .cells(.rows.count,1).end(xlup).row
            .cells(lrd+1,1).value = Sheets("Summary").cells(i,1).value
        'end if
    next i
End With

我建议最后以所需的格式进行格式化,而不是随便评估格式(速度要慢得多)。

答案 1 :(得分:0)

也许这样的东西可以帮助您。在表的特定列中创建用于表载条目的工作表。

Private Sub CreateSheets()
    Dim ws As Worksheet
    Dim RowCount As Integer
    Dim TempName As String
    Dim ImportTable As ListObject

    Set ws = ThisWorkbook.Worksheets("WorkSheetName") 
    Set ImportTable = ws.ListObjects("TableName")

    RowCount = ImportTable.ListRows.Count

    'create a sheet for each value in a specific column of a table
    For i = 1 To RowCount
        TempName = ImportTable.DataBodyRange.Cells(i, ImportTable.ListColumns("ChoosedColumn").Index)
        Sheets.Add.Name = TempName
    Next
End Sub