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