我有一些带有代码的子程序,这些子程序实际上重新创建了给定的模板表,并根据用户输入的输入来更改系统号和项目号。我只为输入的第一个系统和项目编号编写了代码,但需要它再次遍历下一个系统编号和项目编号,并将其存储在上一个循环的数据下方,依此类推。
Sub FirstSub()
'copy paste static columns (description, notes, duration)
wsOutput.Range("D4:D48").Value = wsTemplate.Range("F4:F48").Value 'description
wsOutput.Range("E4:E48").Value = wsTemplate.Range("G4:G48").Value
'notes
Call NextSub
End Sub
Sub NextSub()
Sub NextSub()
Dim item as Integer
Dim itemName as string
Dim i as Integer
Dim k as Integer
i = 4
*'this retrieves the item # from wsInput and combines it with the prefix*
itemName = "item-" & wsInput.Cells(i, 3).Value
wsOutput.Range("A4:A48").Value = itemName
wsOutput.Range("L4:L48").Value = system
*'this retrieves the description from the template and combines it with the itemName and then repeats that process for all descriptions from cells 4-48 in wsTemplate *
k = 4
Set columnX = wsOutput.Range("C4:C48")
Do Until k = 48
For Each cell In columnX
description = wsTemplate.Cells(k, 2).Value
cell.Value = itemName & "-" & description
k = k + 1
If k = 49 Then Exit Do
Next cell
Loop
End Sub
在wsInput中,用户输入具有相应系统(系统1,系统2,系统3等)的项目列表(项目1,项目2,项目3等)。然后,宏使用该宏创建一个名为wsOutput的新电子表格。 wsOutput基于wsTemplate,但列已重新排列,并且项目编号和系统编号根据用户输入而有所不同。
该宏当前仅在项目1和系统1上运行。但是我需要它在所有输入的项目和系统上运行。模板表中有44个数据行(第1-4行是标题),对于用户输入的每个后续项/系统,都需要重复这些数据行。