设置一个VBAmacros,它将为我的主工作表中的每一行信息创build一个新的表格,并以特定格式进行布局?

信息表格的格式如下…

Project# Project Name Item#1 Item#2 Item#3 Item#4 Item#5 Item#6 

我想命名项目名称后的新工作表。 我想最简单的方法来设置新的工作表在所需的格式下是已经build立了一个工作表,将所有信息从一行复制到这个工作表,然后将其复制到一个新的工作表与项目名称。

我设置了For Each Loop来确定是否有项目名称,如果是,则使用另一个工作表中的复制格式创build新工作表。 我的问题是,我不知道如何获取该行上的所有其他单元格复制到新的工作表。

我可以使用某种偏移来复制剩余的字段吗? 我想我不明白如何知道哪个细胞是积极的做到这一点。 我提到我对VBA很缺乏经验吗?

我想可能还有很多其他方法可以做到这一点,而不是一个For Each Loop,我绝对不会反对,所以任何和所有的build议都非常感谢!

这里是我刚才创build新的工作表的代码,但现在我只是卡住了…

 Sub Create_Certificate() For Each ProjectName In Worksheets("Paste").Range("H6:H104") If ProjectName <> "" Then Sheets("Do Not Modify").Copy After:=Sheets("Do Not Modify") ActiveSheet.Name = ProjectName End If Next ProjectName End Sub 

只是想分享我的成品,以防其他人遇到这种情况…

 Sub Create_Certificate() For Each ProjectName In Worksheets("Paste").Range("H6:H104") If ProjectName <> "" Then Sheets("Do Not Modify").Range("G7").Value = Sheets("Paste").Range("G" & ProjectName.Row).Value Sheets("Do Not Modify").Range("H20").Value = Sheets("Paste").Range("H" & ProjectName.Row).Value Sheets("Do Not Modify").Range("D14").Value = Sheets("Paste").Range("I" & ProjectName.Row).Value Sheets("Do Not Modify").Range("D13").Value = Sheets("Paste").Range("J" & ProjectName.Row).Value Sheets("Do Not Modify").Range("D11").Value = Sheets("Paste").Range("K" & ProjectName.Row).Value Sheets("Do Not Modify").Range("D12").Value = Sheets("Paste").Range("L" & ProjectName.Row).Value Sheets("Do Not Modify").Range("D16").Value = Sheets("Paste").Range("M" & ProjectName.Row).Value Sheets("Do Not Modify").Range("D15").Value = Sheets("Paste").Range("N" & ProjectName.Row).Value Sheets("Do Not Modify").Copy After:=Sheets("Do Not Modify") ActiveSheet.Name = ProjectName End If Next ProjectName End Sub 

您可以使用ProjectName.Row获取具有项目名称的单元格的行,并使用该行从“ Paste表中复制范围。

 Sheets("" & ProjectName & "").Range("A2:E2").Value = _ Sheets("Paste").Range( _ "F" & ProjectName.Row & ":" & "J" & ProjectName.Row).Value