vba - 设置一个 VBA 宏,它将为我的主工作表中的每一行信息创建一个新工作表并以某种格式布局?

标签 vba excel

具有信息的工作表的格式如下...

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

我想在项目名称之后命名新工作表。我认为以所需格式设置新工作表的最简单方法是设置一个工作表,将一行中的所有信息复制到此工作表中,然后将其复制到具有项目名称的新工作表中。

我设置了一个 For Each 循环以确定是否有项目名称,如果有,则使用从另一个工作表复制的格式创建新工作表。我的问题是我无法弄清楚如何将该行上的所有其他单元格复制到新工作表中。

我可以使用某种偏移量来复制其余字段吗?我想我不明白如何知道哪个单元格处于事件状态。我有没有提到我对 VBA 非常缺乏经验?

我想除了 For Each 循环之外,可能还有许多其他方法可以做到这一点,我绝不反对重新开始,因此非常感谢任何和所有建议!

这是我刚刚创建新工作表的代码,但现在我只是卡住了......
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

关于vba - 设置一个 VBA 宏,它将为我的主工作表中的每一行信息创建一个新工作表并以某种格式布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556042/

相关文章:

sql - 如何使用 SQL 作业将数据导出到 SQL Server 中的 Excel

vba - 循环这个 Excel 宏?

regex - Excel VBA 正则表达式 : Format cell to Bold if starts with three spaces

excel - XL 宏可以选择具有可变起始行和结束行的范围吗?

java - 如何将Excel表格转换为Json

Excel:列出间接公式的目标范围

vb.net - excel 2007的另一个优化宏vba代码。该代码是我数据的一种转置器

vba - 按下回车键后继续关注文本框

excel - 定义一组不相邻的单元格

java - Apache poi 在图像中放置超链接