Excel 使用逗号分隔的值创建新记录

Excel 使用逗号分隔的值创建新记录,excel,vba,Excel,Vba,我在工作表1中有一个表格,其中一列“G”允许使用多个逗号分隔的值,例如12,24,72。在工作表2中,我希望读取表或工作表1,并使用select列C和G写入新记录(行)。如果在G、工作表1中标识逗号,我希望它为工作表2中的每个实例创建新行 工作表1 ID(A) | Name(C) | Period(G) 1 | Paul | 12 2 | Sam | 12,14,72 3 | Karen | 36 工作表2 Paul | 12 Sam | 12

我在工作表1中有一个表格,其中一列“G”允许使用多个逗号分隔的值,例如12,24,72。在工作表2中,我希望读取表或工作表1,并使用select列C和G写入新记录(行)。如果在G、工作表1中标识逗号,我希望它为工作表2中的每个实例创建新行

工作表1

ID(A) | Name(C) | Period(G)
1     | Paul    | 12
2     | Sam     | 12,14,72
3     | Karen   | 36
工作表2

Paul  | 12
Sam   | 12
Sam   | 14
Sam   | 72
Karen | 36
尝试以下代码(注释在代码中):


欢迎来到StackOverflow!请提供您已经拥有的代码,以及您被困的确切位置。具体点。现在这个问题太宽泛了:听起来太像“请为我写代码”。我真的很感激这一点。非常感谢。@Pablo如果有帮助,您应该将其标记为已接受(左侧的绿色复选标记)。
Option Explicit
Sub FillWS()
    Dim ws1 As Worksheet, ws2 As Worksheet
    ' Set references to worksheets
    Set ws1 = Worksheets("Worksheet1")
    Set ws2 = Worksheets("Worksheet2")
    ' Determine last row in column C in worksheet1
    Dim lastRow As Long
    lastRow = ws1.Cells(ws1.Rows.Count, 3).End(xlUp).Row

    Dim i As Long, j As Long, currentRow As Long, name As String, period() As String
    currentRow = 1
    ' Loop through first worksheet
    For i = 1 To lastRow
        name = ws1.Cells(i, 3).Value
        period = Split(ws1.Cells(i, 7).Value, ",")
        For j = LBound(period) To UBound(period)
            ws2.Cells(currentRow, 1) = name
            ws2.Cells(currentRow, 2) = period(j)
            currentRow = currentRow + 1
        Next
    Next
End Sub