2017-09-05 39 views
0

我有以下代碼,它基於另一個工作表中的一系列單元格添加新的工作表。該代碼最多可以添加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

將這個東西在宏的頂部:

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到H的值複製到新工作表上的D到H.

相關問題