我有以下代码,它根据另一个工作表中的一系列单元格添加新工作表。该代码最多可添加10个工作表,并在单元格中写入数据后将其命名。例如: 我可能在我的" VG-Class"中有以下数据:工作表:
细胞U2:1851-A3 ---------细胞U3:1736-A9 ------细胞U4:2171-A7
因此宏将创建3个新工作表,名称为1851-A3,1736-A9和2171-A7。这是我的代码:
Private CommandButton1_Click()
Dim lRow As Integer, i As Integer
Dim ws As Worksheet
Dim cel As Range
Dim numLines As Integer
i = 0
lRow = Worksheets("V-Class GC").Cells(Rows.Count, 10).End(xlUp).Row
For Each cel In Worksheets("V-Class GC").Range("U2:U" & lRow)
If shtNameChk(cel.Value) = False Then
Set ws = Worksheets.Add(After:=Worksheets(Worksheets.Count))
ws.Name = cel.Value
cel.Offset(0, -1).Hyperlinks.Add Anchor:=cel.Offset(0, -1), Address:="", _
SubAddress:=ws.Name & "!A1", TextToDisplay:=cel.Offset(0, -2).Value & ", " & cel.Offset(0, -3).Value
i = i + 1
End If
Next
Worksheets("V-Class GC").Select
End Sub
我尝试做的是根据另一个名为"信息"的工作表中的数据填充这些新工作表中的每一个。新创建的工作表" 1851-A3"已将模型,包,参考和价格与包含更多代码的列表相关联。我将使用VLOOKUP查找并放置这些值。但是,我不知道如何在我的工作表的名称和此列表中的代码之间进行引用,以便宏可以找到并放置与每个代码/工作表名称相对应的信息。它就像一个报告生成器。
Look at this image if you want to see graphically what I mean:
提前非常感谢你!
答案 0 :(得分:0)
将这些内容放在宏的顶部:
Dim wInfo As Worksheet
Dim x as Long
Set wInfo = Sheets("Information")
然后将此权利放在End If
'check if model # is found in Col D of Information
If Application.CountIf(wInfo.Columns(4), ws.Name) Then
'copy headers
wInfo.Range("D1:H1").Copy ws.Range("D1")
'look for matching model # and copy data if match
For x = 1 To wInfo.Cells(wInfo.Rows.Count, 4).End(xlUp).Row
If wInfo.Cells(x, 4).Value = ws.Name Then wInfo.Range("D" & x & ":" & "H" & x).Copy ws.Cells(Application.CountA(ws.Columns(4)) + 1, 4)
Next x
End If
在您提供的示例数据中,看起来只有在D列和H列之间复制的信息,所以这就是我基于此答案的内容。它将信息表上的值D从D复制到新工作表上的D到H.